0

Layout_WeightLinearLayoutを使用して要素を水平方向に配置できます。これにより、要素がすべての幅を占めるようになり、それぞれの幅は Layout_Weight の値 (または比率) に依存します。私の質問は、の場合にどうすれば同じことができるかですRelativeLayout。Layout_Weight のような属性はありません。私はRelativeLayout自分のプロジェクトで を使用しており、画面の下部に配置する必要があり、幅全体を埋める必要がある 4 つのボタンが含まれています。Layout_Width="20dp"ハードコードなどを使用する場合。向きを縦から横に、またはその逆に変更すると、問題が発生しました。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

        <Button
            android:id="@+id/feed_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="@string/feed"
            android:textColor="#FF000000" />

        <Button
            android:id="@+id/iwant_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@id/feed_button"
            android:text="@string/iwant"
            android:textColor="#FF000000" />

        <Button
            android:id="@+id/share_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@id/iwant_button"
            android:text="@string/share"
            android:textColor="#FF000000" />

        <Button
            android:id="@+id/profile_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toRightOf="@id/share_button"
            android:text="@string/profile"
            android:textColor="#FF000000" />


</RelativeLayout>
4

4 に答える 4

0

layout_weightのような属性はないと思いますRelative layout。しかし、アンドロイドはLinear Layout. その場合、なぜあなたは一緒に行きたいRelative layoutですか?

layout_weightでの使用方法を知っていると思いますLinear Layout

<LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" >

    <Button
        android:id="@+id/feed_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="feed"
        android:textColor="#FF000000" />

    <Button
        android:id="@+id/iwant_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:text="iwant"
        android:textColor="#FF000000" />


</LinearLayout>

相対レイアウトを強制的に使用していることは知っていますが、アクティビティに上記のコードを配置すると、ディスプレイの下部にすべてのボタンが表示され、他のレイアウトの下にそれらのボタンレイアウトを表示したい場合はandroid:layout_below attributte<LinearLayout >タグで使用し、最も外側のレイアウトを相対として使用しますレイアウト

ありがとう

于 2012-04-04T10:09:38.520 に答える
0

相対レイアウトでは、これを動的に実現できます。

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

int height = metrics.heightPixels;
int width = metrics.widthPixels;

Button1.setWidth(width / 2);
Button2.setWidth(width / 2);
于 2012-05-07T05:24:16.727 に答える
0

相対レイアウトを全幅にするため

android:layout_width="fill_parent"

一番下に追加する

android:layout_alignParentBottom="true"
于 2012-04-04T10:07:44.173 に答える
0

ボタンがすべて等しいことを確認する唯一の方法は、LinearLayout次のように、ボタンでカバーする領域を埋めるに配置することです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

   <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:orientation="vertical" >
        <Button
            android:id="@+id/feed_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="@string/feed"
            android:textColor="#FF000000" />

        <Button
            android:id="@+id/iwant_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:layout_toRightOf="@id/feed_button"
            android:text="@string/iwant"
            android:textColor="#FF000000" />

        <Button
            android:id="@+id/share_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="@string/share"
            android:textColor="#FF000000" />

        <Button
            android:id="@+id/profile_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="@string/profile"
            android:textColor="#FF000000" />
  </LinearLayout>

</RelativeLayout>

LinearLayout親レイアウトの幅全体を埋め、重みに基づいてボタンを均等に分割します。

2 つのレイアウトを均等に分割したい場合、非常に便利な方法がありますRelativeLayout。0x0 ピクセルの「非表示」レイアウトを作成し、それを親ビューの中央に配置してから、2 つのレイアウトを非表示レイアウトの必要な場所に合わせて配置します。

于 2012-04-04T13:33:55.940 に答える