我对android开发相对较新。我有一个TableLayout活动。活动的构建如下图所示。
我希望两个较小的按钮位于右侧,这样两个EditTexts都可以使用完整的剩余宽度。我也尝试设置" android:gravity"像一些帖子建议,但没有任何影响。我该如何完成?
此外,我有2个tableRows用于两行,包含info,text&按钮。 活动的其余部分超出任何tableRow以获得全宽度。 这是常用还是坏编程?如果是这样,那么更好的方式是什么?
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/strInputInfo"
android:id="@+id/lblHexToRGB"
android:layout_column="1" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/txtHexInput"
android:layout_column="1"
android:textCursorDrawable="@null"
android:hint="@string/strHexInputHint" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/strConvertButtonText"
android:id="@+id/cmdConvertCode"
android:layout_column="1"/>
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/strRGBInfo"
android:id="@+id/lblRGBInfo"
android:layout_column="0" />
<EditText
android:layout_width="350px"
android:layout_height="wrap_content"
android:id="@+id/txtOutputRGB"
android:textCursorDrawable="@null"
android:layout_column="1"
android:textAlignment="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strButtonCopyText"
android:id="@+id/cmdCopyRGBToClipboard"
android:layout_column="2"
android:layout_gravity="right"/>
</TableRow>
<TableRow
android:layout_width="wrap_content"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/strHexInfo"
android:id="@+id/lblHexInfo"
android:layout_column="0"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtOutputHex"
android:layout_column="1"
android:textAlignment="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strButtonCopyText"
android:id="@+id/cmdCopyHexToClipboard"
android:layout_column="2"/>
</TableRow>
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:layout_column="1"
android:maxHeight="100dp"
android:minHeight="100dp" />
</TableLayout>
答案 0 :(得分:1)
尝试将tablerow设置为fill_parent,然后您可以使用 android:layout_gravity =“right”
<TableRow
android:layout_width="fill_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="@string/strHexInfo"
android:id="@+id/lblHexInfo"
android:layout_column="0"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/txtOutputHex"
android:layout_column="1"
android:textAlignment="center"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/strButtonCopyText"
android:id="@+id/cmdCopyHexToClipboard"
android:layout_gravity="right"
android:layout_column="2"/>
</TableRow>
答案 1 :(得分:1)
TableRow布局与LinearLayout完全相同(事实上,它是LinearLayout的子类),因此您可以使用LinearLayout中的layout_weight属性来允许行中的视图扩展以填充与其他视图相关的空间。它的行。
例如,您的EditText可能是:
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/txtOutputRGB"
android:textCursorDrawable="@null"
android:layout_column="1"
android:textAlignment="center"/>
请注意,宽度为0,权重为1.当行中的其他视图的权重为0(默认值)时,这告诉TableRow为EditText分配尽可能多的空间,而其他视图获得渲染所需的最小空间。