2016-10-07 12 views
0

我想创建一个列表视图的项目,包括一个文本框和一个按钮水平。 我希望textview位于左侧,按钮位于右侧。 该按钮总是具有相同的大小,所以我想让textview占据空间的其余部分。范围内的Xamarin Android的textview

我的问题是,textview(如果它包含的文字比屏幕宽)将按钮从屏幕上推出。

我希望textview不要将按钮按下屏幕 - 我希望按钮始终贴在屏幕的右侧,而不管textview中的文本有多长。 如果文本太长而无法显示,我只想尽可能多地显示(如溢出:隐藏在HTML中的),而无需将按钮向右按。

是否可以配置我的视图来处理这个问题,或者是否需要进行各种测量屏幕宽度和文本长度等等?

这里是我的列表视图项XAML:

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:stretchColumns="0"> 
<TableRow> 
    <TextView 
     android:id="@+id/tv_item_text" 
     android:text="(123456) Item Name" 
     android:paddingLeft="10dip" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="fill_vertical" 
     android:gravity="fill_vertical" 
     /> 
    <Button 
     android:id="@+id/btn_go" 
     android:layout_width="wrap_content" 
     android:text="Go" 
     android:textColor="@android:color/holo_blue_dark" 
     android:layout_gravity="fill_vertical" 
     android:gravity="center" 
     android:visibility="visible" /> 
</TableRow> 

我是很新,Xamarin所以如果有人可以帮助我将非常感激。

/Aidal

+0

你为什么要使用TableLayout? – Cheesebaron

回答

1

我真不明白,为什么人们认为使用TableLayout和窝里面它是ListView控件/ RecyclerView项的良好做法的TableRow ...

你为什么不使用一个RelativeLayout,它告诉按钮位于右侧并使文本视图填充剩余的空间?

应该是这个样子:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="50dp"> 
    <Button 
     android:id="@+id/btn_go" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:text="Go" 
     android:textColor="@android:color/holo_blue_dark" 
     android:layout_alignParentRight="true" /> 
    <TextView 
     android:id="@+id/tv_item_left" 
     android:layout_width="match_match" 
     android:layout_height="match_parent" 
     android:layout_toLeftOf="@id/btn_go" 
     android:layout_alignParentLeft="true" /> 
</RelativeLayout> 
+0

这似乎工作,谢谢。我想你的问题的答案在我的文章的最后一行。 – Aidal

+0

就像在HTML,Markdown等,表应该用于内容和定位布局。 – Cheesebaron

+0

虽然这在视觉上起作用,但仍需要做些事情才能使其按预期工作。这应该是一个ListView项目的布局,所以我假设我需要做一些事情才能够在按钮和按钮之外捕捉点击,因为现在我无法通过仅仅捕获任何一个事件使用ListView.ItemClick。我想我需要在ListViewAdapter中做一些重写? – Aidal