如何在Android的RowTable中对齐文本和按钮
Posted
技术标签:
【中文标题】如何在Android的RowTable中对齐文本和按钮【英文标题】:how to align text and button in RowTable in Android 【发布时间】:2016-03-23 20:59:27 【问题描述】:我正在尝试设计我的片段,我想创建文本将正好位于按钮上方和中心。 现在我刚刚创建了一个 2 RowTables。但我仍然无法按照我的意愿对齐它。
这是 XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_
android:layout_
android:id="@+id/mainSearchRelativeLayout"
tools:context="com.example.matant.gpsportclient.Controllers.SearchEventFragmentController"
android:background="#ffffff">
<!-- TODO: Update blank fragment layout -->
<RelativeLayout
android:layout_
android:id="@+id/secondSearchLayout"
android:layout_>
<RadioGroup
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/radioGroupSearchFragment">
<RadioButton
android:layout_
android:layout_
android:text="Search by current location"
android:id="@+id/radioButtonSearchCurrentLocation"
android:checked="true" />
<RadioButton
android:layout_
android:layout_
android:text="Search by specific address"
android:id="@+id/radioButtonSearchSpecificAdd"
android:checked="false" />
<EditText
android:layout_
android:layout_
android:inputType="textPostalAddress"
android:ems="10"
android:id="@+id/editText"
android:hint="Please insert real Street address" />
</RadioGroup>
<View
android:id="@+id/divider1"
android:layout_
android:layout_
android:background="@android:color/darker_gray"
android:layout_below="@+id/radioGroupSearchFragment"
/>
<ScrollView
android:layout_
android:id="@+id/searchScrollView"
android:layout_below="@id/divider1"
android:layout_>
<RelativeLayout
android:layout_
android:id="@+id/mandatorySearchLayout"
android:layout_below="@+id/divider1"
android:layout_>
<TextView
android:layout_
android:layout_
android:text="Event Date Ranges"
android:id="@+id/textViewEventDateRange"
android:textColor="#000000"
android:textStyle="bold"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/textViewSearchMandatory1" />
<Button
android:layout_
android:layout_
android:text="From"
android:id="@+id/buttonSearchEventFrom"
android:layout_below="@+id/textViewEventDateRange"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_
android:layout_
android:text="To"
android:id="@+id/buttonSearchEventTo"
android:layout_below="@+id/buttonSearchEventFrom"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_
android:layout_
android:text="*All the fields are mandatory"
android:id="@+id/textViewSearchMandatory1"
android:textColor="#FF0000"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TableRow
android:layout_
android:id="@+id/row1"
android:layout_below="@+id/buttonSearchEventTo"
android:layout_>
<TextView
android:layout_
android:layout_
android:text="Start in"
android:layout_marginLeft="50dp"
android:id="@+id/textView6" />
<TextView
android:layout_
android:layout_
android:text="End in"
android:layout_marginLeft="150dp"
android:id="@+id/textView7" />
</TableRow>
<TableRow
android:layout_
android:id="@+id/row2"
android:layout_below="@id/row1"
android:layout_>
<Button
android:layout_
android:layout_
android:text="New Button"
android:layout_marginLeft="20dp"
android:id="@+id/button2" />
<Button
android:layout_
android:layout_
android:text="New Button"
android:layout_marginLeft="70dp"
android:id="@+id/button" />
</TableRow>
</RelativeLayout>
</ScrollView>
<View
android:id="@+id/divider2"
android:layout_
android:layout_
android:background="@android:color/darker_gray"
android:layout_below="@+id/searchScrollView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="70dp" />
</RelativeLayout>
这就是我得到的:
【问题讨论】:
哪些按钮和文字?添加截图你要怎么做? 你的意思是说.. Start in 应该显示在 New Button 上? 如果你想像我说的那样或理解你的问题...然后放置文本和按钮框架布局。您的问题将得到解决 【参考方案1】:由于您没有下划线,因此我建议您要对齐哪些按钮和 textView,您希望得到这样的结果:
为此,我建议删除 TableRow
s 并将其替换为,例如,LinearLayout
s:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_
android:layout_
android:id="@+id/mainSearchRelativeLayout"
tools:context="com.example.matant.gpsportclient.Controllers.SearchEventFragmentController"
android:background="#ffffff">
<!-- TODO: Update blank fragment layout -->
<RelativeLayout
android:layout_
android:id="@+id/secondSearchLayout"
android:layout_>
<RadioGroup
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/radioGroupSearchFragment">
<RadioButton
android:layout_
android:layout_
android:text="Search by current location"
android:id="@+id/radioButtonSearchCurrentLocation"
android:checked="true" />
<RadioButton
android:layout_
android:layout_
android:text="Search by specific address"
android:id="@+id/radioButtonSearchSpecificAdd"
android:checked="false" />
<EditText
android:layout_
android:layout_
android:inputType="textPostalAddress"
android:ems="10"
android:id="@+id/editText"
android:hint="Please insert real Street address" />
</RadioGroup>
<View
android:id="@+id/divider1"
android:layout_
android:layout_
android:background="@android:color/darker_gray"
android:layout_below="@+id/radioGroupSearchFragment"
/>
<ScrollView
android:layout_
android:id="@+id/searchScrollView"
android:layout_below="@id/divider1"
android:layout_>
<RelativeLayout
android:layout_
android:id="@+id/mandatorySearchLayout"
android:layout_below="@+id/divider1"
android:layout_>
<TextView
android:layout_
android:layout_
android:text="Event Date Ranges"
android:id="@+id/textViewEventDateRange"
android:textColor="#000000"
android:textStyle="bold"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/textViewSearchMandatory1" />
<Button
android:layout_
android:layout_
android:text="From"
android:id="@+id/buttonSearchEventFrom"
android:layout_below="@+id/textViewEventDateRange"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<Button
android:layout_
android:layout_
android:text="To"
android:id="@+id/buttonSearchEventTo"
android:layout_below="@+id/buttonSearchEventFrom"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
<TextView
android:layout_
android:layout_
android:text="*All the fields are mandatory"
android:id="@+id/textViewSearchMandatory1"
android:textColor="#FF0000"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<LinearLayout
android:layout_below="@+id/buttonSearchEventTo"
android:orientation="horizontal"
android:layout_
android:layout_>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_
android:layout_>
<TextView
android:layout_
android:layout_
android:text="Start in"
android:id="@+id/textView6" />
<Button
android:layout_
android:layout_
android:text="New Button"
android:id="@+id/button2" />
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_weight="1"
android:layout_
android:layout_>
<TextView
android:layout_
android:layout_
android:text="End in"
android:id="@+id/textView7" />
<Button
android:layout_
android:layout_
android:text="New Button"
android:id="@+id/button" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</ScrollView>
<View
android:id="@+id/divider2"
android:layout_
android:layout_
android:background="@android:color/darker_gray"
android:layout_below="@+id/searchScrollView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="70dp" />
</RelativeLayout>
然后要考虑的最后一件事 - 删除默认按钮的阴影,使它们完全对齐 - 这个问题在这里讨论 - How to remove padding around buttons in android?
希望对你有帮助
【讨论】:
以上是关于如何在Android的RowTable中对齐文本和按钮的主要内容,如果未能解决你的问题,请参考以下文章
无论在android中垂直对齐的字数如何,如何为多个文本视图设置相等的宽度?