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の左側に揃えて表示されます。
これどうやってするの?
ありがとうございました。
[〜#〜] edit [〜#〜]:完全なレイアウトとAshayによって提案された変更を追加しました。
2番目の編集:
ソリューション
以下をTableLayout
に追加しました:Android:stretchColumns="0,1"
。これでボタンは中央揃えになりましたが、全体の列を埋めています!!!
これが役に立てば幸いです:
<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>
私は自分のコードを投稿しました。他のユーザーが問題を解決するのに役立つことを願っています(中央のコンテンツ)。 2つのボタンをテーブルの行の中央に配置したかったので、この問題を解決するコードを次に示します。
プロパ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>
お役に立てば幸いです。私の英語でごめんなさい:/
1つのボタンを1つの行の中央に配置するには:
<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>
上記の回答を確認した後、各回答からいくつかのことを取得しましたが、これはうまくいきました。
ボタンを中央に配置するために、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>
この行を削除_<TableRow Android:layout_gravity="center">
_そして_Android:fill_containt
_を両方のテーブル行にheight&width
EDITED ANSWER:さて、最後の投稿のスペルミスでごめんなさい
XMLでは、TableLayout
は不可能に思えます。 oncreateのコードでこのUIを設定する必要があります。 Javaファイルで、以下を使用してそれらを設定できます。
_playGame.setWidth(ScreenWidth()/2-var);
noPlayGame.setWidth(ScreenWidth()/2-var);
_
ここでvar
を使用して、これら2つのボタン間の距離を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);
}
_