我想要一个输入字段列表,左边是标签,用于编辑屏幕。在底部需要一组按钮,这些按钮应该在中央对齐。 标签可以具有不同的宽度,具体取决于语言,因此EditText视图需要跨越剩余空间。我正在使用网格布局,因为我需要将所有EditText视图对齐到左边的垂直线。
我现在花了半天时间来解决这个问题,但我未能取得进展。我能得到的最接近的是:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_column="0"
android:layout_row="0"
android:text="Label 1234545"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvHeightLabel"/>
<EditText
android:layout_column="1"
android:layout_row="0"
android:text="Some text which is too long that it could fit in one single row"
android:layout_gravity="fill_horizontal"
android:inputType="numberDecimal"
android:ellipsize="end"
android:id="@+id/etHeight"
android:layout_width="259dp"/>
<TextView
android:layout_column="0"
android:layout_row="1"
android:text="Label 2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tvHeightLabel2"/>
<EditText
android:layout_column="1"
android:layout_row="1"
android:text="Some text which is too long that it could fit in one single row"
android:layout_gravity="fill_horizontal"
android:inputType="numberDecimal"
android:ellipsize="end"
android:id="@+id/etHeight2"
android:layout_width="259dp"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_row="3"
android:layout_column="0"
android:layout_columnSpan="2">
<Button
style="?android:attr/buttonBarButtonStyle"
android:text="Button 1"
android:layout_height="wrap_content"
android:id="@+id/btCancel"
android:layout_weight="1"
android:layout_width="wrap_content"/>
<Button
style="?android:attr/buttonBarButtonStyle"
android:text="Button 2"
android:layout_height="wrap_content"
android:id="@+id/btSave"
android:layout_weight="1"
android:layout_width="wrap_content"/>
</LinearLayout>
</GridLayout>
此布局如下所示:
它似乎首先工作,但是当标签超过一定大小时,EditText视图元素会从屏幕右侧生长出来:
我甚至不知道为什么上面的解决方案适用于标签,而标签只是稍微增长。 EditText元素的宽度设置为259dp,由Android Studio自动设置。 (我试图通过鼠标在设计屏幕上的预览上调整EditText视图来安排它.Android Studio在上面给出的某个点自动排列它。)
必须有一些属性让视图消耗掉与其内容无关的内容。文字可以滚动,我没关系。我觉得我根本不了解布局概念。
答案 0 :(得分:0)
使用填充来限制文本的流动。