对齐 TableRow 内的按钮
我正在开发一个 Android 应用程序。
我有这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="200px"
android:orientation="vertical">
<TextView
android:id="@+id/gameTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="left"
android:layout_margin="5px"
android:text="aaaaa"/>
<TextView
android:id="@+id/gameDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="left"
android:layout_margin="5px"
android:typeface="sans"
android:textSize="16sp"
android:textStyle="bold"
android:text="dddddd"/>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ButtonsTable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:text="@string/yes"
android:id="@+id/playGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:text="@string/no"
android:id="@+id/noPlayGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
</LinearLayout>
我想将 playGame 按钮放在中心的左侧,将 noPlayGame 按钮放在中心的右侧。
现在,两者都与 TableRow 的左侧对齐。
我该怎么做?
谢谢。
编辑:我添加了完整的布局和Ashay建议的修改。
第二次编辑:
解决方案
我已将以下内容添加到TableLayout
:android:stretchColumns="0 ,1"
。现在按钮居中对齐,但它们填满了整个列!
I'm developing an Android application.
I have this:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="200px"
android:orientation="vertical">
<TextView
android:id="@+id/gameTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="left"
android:layout_margin="5px"
android:text="aaaaa"/>
<TextView
android:id="@+id/gameDescription"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:focusable="false"
android:focusableInTouchMode="false"
android:gravity="left"
android:layout_margin="5px"
android:typeface="sans"
android:textSize="16sp"
android:textStyle="bold"
android:text="dddddd"/>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ButtonsTable"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TableRow
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:text="@string/yes"
android:id="@+id/playGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:text="@string/no"
android:id="@+id/noPlayGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</TableRow>
</TableLayout>
</LinearLayout>
I want to put playGame button in the left side of the center, and noPlayGame button in the right side of the center.
Now, both appear aligned to the left of the TableRow.
How can I do this?
Thank you.
EDIT: I've added the complete layout and the modifications suggested by Ashay.
2nd EDIT:
THE SOLUTION
I've added to TableLayout
the following: android:stretchColumns="0,1"
. Now the buttons are center aligned but they fill their entiry column!!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我希望这有帮助:
I hope this helps:
我发布了我的代码,我希望能够帮助其他用户解决他们的问题(中心内容)。我想将两个按钮放在表格行的中心,这是我的代码,它解决了这个问题:
我们使用逗号分隔列表指示哪些列将在 prop android:strechColumns="a,b.." 中拉伸
我希望它会帮助。对不起我的英语:/
I posted my code, I hope that will help others users to resolve theirs problems (center content). I wanted to center two buttons in table row, here is my code, which solve this problem:
we indicate which columns will be stretched in prop android:strechColumns="a,b.." using comma-delimited list
I hope that it will help. Sorry for my english :/
将单个按钮放在单行上居中:
查看上述答案后,我从每个答案中获取了一些内容,这对我有用。
For centering a single button on a single row:
After reviewing the above answers, I grabbed a few things from each answer and this worked for me.
我添加了两个虚拟文本视图以将按钮对齐在中心。
I added two dummy textviews to align my button in the center.
删除此行
并在表格行中给出 height 和
android:fill_containt
。 宽度编辑答案:
好吧,我对上一篇文章的拼写错误感到非常抱歉,
通过 XML,
TableLayout
似乎是不可能的。您需要在 oncreate 中的代码中设置此 UI。在您的 java 文件中,您可以使用以下命令来设置它们。
这里
var
可用于设置这 2 个按钮之间的距离,例如 10 或 30。另外,您的 xml 将发生如下变化:
方法
ScreenWidth()
可用于通过这些方法获取屏幕宽度Remove this line
<TableRow android:layout_gravity="center">
And give
android:fill_containt
in table row for both height & widthEDITED ANSWER:
Well, I'm so sorry for the last posts spelling mistake
Through XML it seems impossible for
TableLayout
. You need to set this UI in code in oncreate.In your java file you can set those by using below.
here
var
can be used to set the distance between these 2 buttons like 10 or 30.Also, your xml will get change as follows:
The method
ScreenWidth()
can be used for getting width of the screen through these methods