Android xml 中的居中 TableLayout 行
我试图在表格行的中心对齐 2 个按钮,无论屏幕分辨率如何,所以我试图避免使用指定的边距。 这是我的代码,它仅适用于声明的边距,并且我正在使用重力和布局重力......对我来说没有任何作用。它们没有在中心对齐。 有人有想法吗?不管怎样,谢谢。
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableLayout
android:id="@+id/TableLayout01"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100px"
android:stretchColumns="1" >
<TableRow
android:id="@+id/TableRow01"
android:layout_gravity="center"
android:paddingLeft="50dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/image1Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image1"
android:gravity="center"
android:src="@drawable/image1"
android:text="@string/image1text"
android:textColor="@color/darkgrey" />
<Button
android:id="@+id/image2Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image2"
android:gravity="center"
android:src="@drawable/image2"
android:text="@string/image2text"
android:textColor="@color/darkgrey" />
</TableRow>
<TableRow
android:id="@+id/TableRow02"
android:paddingLeft="50dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/image3Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image3"
android:gravity="center"
android:src="@drawable/image3"
android:text="@string/image3text"
android:textColor="@color/darkgrey" />
<Button
android:id="@+id/image4Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image4"
android:gravity="center"
android:src="@drawable/image4"
android:text="@string/image4text"
android:textColor="@color/darkgrey" />
</TableRow>
</TableLayout>
</RelativeLayout>
</ScrollView>
I am trying to align in the center 2 buttons in a table row, no matter the screen resolution, so i am trying to avoid using specified margins.
This is my code, it works only with declared margins, and i am using gravity and layout gravity...nothing worked for me. They did not align in the center.
Does anyone have an idea? Thanks anyway.
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableLayout
android:id="@+id/TableLayout01"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="100px"
android:stretchColumns="1" >
<TableRow
android:id="@+id/TableRow01"
android:layout_gravity="center"
android:paddingLeft="50dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/image1Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image1"
android:gravity="center"
android:src="@drawable/image1"
android:text="@string/image1text"
android:textColor="@color/darkgrey" />
<Button
android:id="@+id/image2Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image2"
android:gravity="center"
android:src="@drawable/image2"
android:text="@string/image2text"
android:textColor="@color/darkgrey" />
</TableRow>
<TableRow
android:id="@+id/TableRow02"
android:paddingLeft="50dip"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/image3Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image3"
android:gravity="center"
android:src="@drawable/image3"
android:text="@string/image3text"
android:textColor="@color/darkgrey" />
<Button
android:id="@+id/image4Btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:drawablePadding="-5sp"
android:drawableTop="@drawable/image4"
android:gravity="center"
android:src="@drawable/image4"
android:text="@string/image4text"
android:textColor="@color/darkgrey" />
</TableRow>
</TableLayout>
</RelativeLayout>
</ScrollView>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将按钮放在几个 LinearLayout 中,而不是放在 TableRow 中。
外部 LinearLayout 将拉伸至 TableLayout 的宽度,并通过 TableLayout 将其高度设置为
wrap_content
。内部 LinearLayout 将在外部 LinearLayout 中水平居中,因为后者是垂直方向的。Put your buttons in a couple of LinearLayouts instead of a TableRow.
The outer LinearLayout will be stretched to the width of the TableLayout and have its height set to
wrap_content
by TableLayout. The inner LinearLayout will be centered horizontally in the outer LinearLayout because the latter is vertically oriented.