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>