わかりました、私は線形レイアウトの2つのボタンがあります:
<LinearLayout Android:id="@+id/linearLayout1"
Android:layout_height="wrap_content"
Android:layout_width="fill_parent">
<Button Android:id="@+id/aktiviraj_paket"
Android:text="Aktiviraj"
Android:layout_height="40sp"
Android:layout_width="160sp"
Android:background="@drawable/my_border3"
Android:onClick="myClickHandle"></Button>
<Button Android:id="@+id/deaktiviraj_paket"
Android:text="Deaktiviraj"
Android:layout_height="40sp"
Android:layout_width="fill_parent"
Android:background="@drawable/my_border3"
Android:onClick="myClickHandle">
</Button>
</LinearLayout>
つまり、両方のボタンでfill parentを使用すると、それらは互いに1つになるため、最初のボタンを160sp幅にし、2番目のボタンをfill_parentにします。これが4インチ以下の画面で表示される場合、ボタンは同じサイズですが、タブレット(10インチ)でこれを試してみると、最初のボタンは160sp幅のままで、2番目は画面の終わりまで引き伸ばされます(fill_parentのため)。これを作成して、画面のサイズに関係なく両方のボタンを同じサイズにすることはできますか?
両方のButton
sでAndroid:layout_weight="1"
を使用します。両方にAndroid:layout_width="0dp"
を設定します。両方のボタンの重みが等しくなったため、親の幅がそれぞれ半分になりました。
詳細はこちらをご覧ください: http://developer.Android.com/guide/topics/ui/layout/linear.html
すべてのボタンを最も幅の広いボタンの幅にすることを目的としている場合、ウェイトを設定してもそれはできません。むしろ、すべてのボタンをTableLayoutに配置できます。
<TableLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<TableRow
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<Button
Android:id="@+id/button1"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/short_text" />
</TableRow>
<TableRow
Android:layout_width="wrap_content"
Android:layout_height="wrap_content" >
<Button
Android:id="@+id/button2"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="@string/enter_manually" />
</TableRow>
</TableLayout>
このレイアウトには、同じ幅の2つのボタンが表示されます。
各ボタンに設定:
Android:layout_weight="0.5"
Android:layout_width="0dp"
<LinearLayout
Android:id="@+id/layout"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:orientation="horizontal" >
<Button
Android:id="@+id/button1"
Android:layout_width="match_parent"
Android:layout_height="40dp"
Android:layout_weight="1"
Android:text="One" />
<Button
Android:id="@+id/button2"
Android:layout_width="match_parent"
Android:layout_height="40dp"
Android:layout_weight="1"
Android:text="Two" />
</LinearLayout>
これらは、上記のコードから並べて実行できる等サイズボタンの例です
Android:layout_weight
linearLayoutのすべての子にボタンまたは同等の量のスペースを割り当てるために使用されます。
注:線形レイアウトでのみ機能します。
Display display=getWindowManager().getDefaultDisplay();
int width=display.getWidth();
btn1.setWidth(width/2);
btn2.seTwidth(width/2);
Xmlファイルに何かを設定してから、最初にデバイスの幅を見つけてから、両方のボタンに半分の幅を設定します
Android:layout_weight="0.5"
Android:layout_width="0dp
それは働いています
これは機能しています:
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="horizontal">
<Button
Android:layout_width="0dp"
Android:layout_weight="0.5"
Android:layout_height="wrap_content"
Android:text="my btn 1"/>
<Button
Android:layout_width="0dp"
Android:layout_weight="0.5"
Android:layout_height="wrap_content"
Android:text="my btn 2"/>
</LinearLayout>
このように相対レイアウトにネストされた線形レイアウトでそれらを設定できます
<LinearLayout
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentBottom="true"
Android:layout_centerHorizontal="true"
Android:gravity="center"
Android:orientation="vertical">
<Button
Android:id="@+id/bestBtn"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textStyle="bold"
Android:layout_marginBottom="5dp"
Android:textAllCaps="false"
Android:textSize="16sp"
Android:textColor="@color/grey_light2"
Android:background="@drawable/sharefb_btn"
Android:text="@string/sharefb" />
<Button
Android:id="@+id/playBtn"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:textColor="@color/grey_light2"
Android:textAllCaps="false"
Android:textSize="16sp"
Android:layout_marginBottom="50dp"
Android:textStyle="bold"
Android:background="@drawable/puzzle_opening_btn_ncvtelen_3"
Android:text="@string/playagain" />
</LinearLayout>
そして、あなたはそのような何かを得るでしょう
含まれるレイアウトでAndroid:layout_weight = "1"を設定する線形レイアウトでは、Android:orientationを水平に設定する必要があります。そして、内側のボタンには次のものが必要です。
Android:layout_width = "0dp"
Android:layout_weight = "0.5"