Xamarin Android 文本视图在边界内
Xamarin Android textview within bounds
我正在尝试创建一个由文本视图和水平按钮组成的列表视图项。
我希望文本视图在左侧,按钮在右侧。
该按钮始终具有相同的大小,所以我想让 textview 占据 space.
的其余部分
我的问题是 textview(如果它包含比屏幕宽的文本)将按钮推出屏幕。
我希望 textview 不将按钮推出屏幕 - 我希望按钮始终保持在屏幕右侧,无论 textview 中的文本有多长。
如果文本太长无法显示,我只想尽可能多地显示(如HTML中的overflow:hidden),而不是将按钮向右推。
是否可以配置我的视图来处理这个问题,或者我是否需要对屏幕宽度和文本长度等进行各种测量?
这是我的列表视图项目 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 的新手,所以如果有人能帮助我,我将不胜感激。
/艾达尔
我真的不明白为什么人们认为使用 TableLayout 并在其中嵌套 TableRow 是 ListView/RecyclerView 项目的好习惯...
为什么不使用 RelativeLayout 告诉按钮在右边并使文本视图填充 space 的其余部分?
应该看起来像这样:
<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>
我正在尝试创建一个由文本视图和水平按钮组成的列表视图项。 我希望文本视图在左侧,按钮在右侧。 该按钮始终具有相同的大小,所以我想让 textview 占据 space.
的其余部分我的问题是 textview(如果它包含比屏幕宽的文本)将按钮推出屏幕。
我希望 textview 不将按钮推出屏幕 - 我希望按钮始终保持在屏幕右侧,无论 textview 中的文本有多长。 如果文本太长无法显示,我只想尽可能多地显示(如HTML中的overflow:hidden),而不是将按钮向右推。
是否可以配置我的视图来处理这个问题,或者我是否需要对屏幕宽度和文本长度等进行各种测量?
这是我的列表视图项目 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 的新手,所以如果有人能帮助我,我将不胜感激。
/艾达尔
我真的不明白为什么人们认为使用 TableLayout 并在其中嵌套 TableRow 是 ListView/RecyclerView 项目的好习惯...
为什么不使用 RelativeLayout 告诉按钮在右边并使文本视图填充 space 的其余部分?
应该看起来像这样:
<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>