我正在开发一个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"
。现在按钮是中心对齐的,但它们填满了他们的entiry列!
答案 0 :(得分:21)
我希望这会有所帮助:
<TableRow
android:id="@+id/tableRow1"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/stringtxt1"></Button>
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:text="@string/stringtxt2"
android:layout_height="wrap_content"
android:layout_gravity="center|center_horizontal"></Button>
</TableRow>
答案 1 :(得分:9)
我发布了我的代码,希望能帮助其他用户解决他们的问题(中心内容)。我想把表格行中的两个按钮居中,这是我的代码,它解决了这个问题:
我们使用逗号分隔列表指示哪些列将在prop android:strechColumns =“a,b ..”中拉伸
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/buttonGroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0,1" >
<TableRow>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button1Name"
android:layout_gravity="right"/>
<Button
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/button2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button2Name"
android:layout_gravity="left"/>
</TableRow>
</TableLayout>
我希望它会有所帮助。对不起我的英文:/
答案 2 :(得分:9)
将单个按钮居中放在一行:
<TableRow android:id="@+id/rowNameHere"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:gravity="center">
<Button android:id="@+id/btnDoStuff"
android:text="Do Stuff" />
</TableRow>
在回顾了上述答案后,我从每个答案中抓取了一些内容,这对我有用。
答案 3 :(得分:2)
删除此行<TableRow android:layout_gravity="center">
并为表格行中的android:fill_containt
提供高度&amp;的宽度强>
编辑回答: 好吧,我很抱歉最后的帖子拼写错误
通过XML,TableLayout
似乎不可能。您需要在oncreate中的代码中设置此UI。
在您的java文件中,您可以使用下面的设置来设置它们。
playGame.setWidth(ScreenWidth()/2-var);
noPlayGame.setWidth(ScreenWidth()/2-var);
此处var
可用于设置这两个按钮之间的距离,如10或30。
此外,您的xml将按如下方式进行更改:
<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="wrap_content"
android:layout_height="fill_parent"
android:gravity="center">
<Button
android:text="yes"
android:id="@+id/playGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
<Button
android:text="no"
android:id="@+id/noPlayGame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"/>
</TableRow>
</TableLayout>
方法ScreenWidth()
可用于通过这些方法获取屏幕宽度
private int ScreenWidth() {
DisplayMetrics dm=new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
String width=""+dm.widthPixels;
return Integer.parseInt(width);
}
答案 4 :(得分:2)
我添加了两个虚拟文本视图,以便在中心对齐我的按钮。
<TableRow>
<TextView
android:text=""
android:layout_weight=".25"
android:layout_width="0dip"
/>
<Button
android:id="@+id/buttonSignIn"
android:text="Log In"
android:layout_height="wrap_content"
android:layout_weight=".50"
android:layout_width="0dip"
/>
<TextView
android:text=""
android:layout_weight=".25"
android:layout_width="0dip"
/>
</TableRow>