1

次のようなレイアウトがあります


|ボタン1 | テキスト 1 |


リストビュー


|ボタン2 | テキスト 2 |


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/textView" android:layout_alignBottom="@+id/button"
                android:layout_alignParentTop="true"/>
        <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button"
                android:id="@+id/button" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/textView"/>
    </LinearLayout>
    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:id="@+id/relativeLayout">
            <ListView
                android:id="@+id/s1ListView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            </ListView>
       </LinearLayout>
    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button"
                android:id="@+id/button2" />
    </LinearLayout>
</LinearLayout>

問題は、リストビューがボタン 2 とテキスト 2 の上に表示され、ボタン 2 とテキスト 2 が非表示になることです。理想的には、ListView は button2 の上にある必要があります。コンテンツがリストビューにある場合、リストビューがボタン2を非表示にするとどうなりますか. レイアウトを変更する必要がありますか?

助けてください

4

5 に答える 5

0

とを使用android:weightSumandroid:layout_weightてレイアウトを設定できます。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
        android:weightSum="1">
    <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.2">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/textView" android:layout_alignBottom="@+id/button"
                android:layout_alignParentTop="true"/>
        <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button"
                android:id="@+id/button" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/textView"/>
    </LinearLayout>
    <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content"
                    android:id="@+id/relativeLayout"
                    android:layout_weight="0.6">
            <ListView
                android:id="@+id/s1ListView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

            </ListView>
       </LinearLayout>
    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="0.2">
        <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button"
                android:id="@+id/button2" />
    </LinearLayout>
</LinearLayout>
于 2013-06-03T12:39:26.270 に答える
0

android:layout_weight各線形レイアウトに重みを割り当て、高さを 0 dp に設定するために使用します。

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="0.2">
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Medium Text"
            android:id="@+id/textView" android:layout_alignBottom="@+id/button"
            android:layout_alignParentTop="true"/>
    <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/textView"/>
</LinearLayout>
<LinearLayout android:layout_width="wrap_content" android:layout_height="0dp"
                android:id="@+id/relativeLayout"
                android:layout_weight="0.6">
        <ListView
            android:id="@+id/s1ListView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

        </ListView>
   </LinearLayout>
<LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight="0.2">
    <Button
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="New Button"
            android:id="@+id/button2" />
</LinearLayout>

于 2013-06-03T12:39:56.400 に答える
0

layout_weightこのタイプのレイアウトを実現するために使用する場合は注意してください。このlayout_weight要件の解決策というよりは回避策です。コードを実行するlayout_weightと、実際に必要なスペースよりも上下のレイアウトに多くの/少ないスペースを与える効果が見られます。

を使用する方RelativeLayoutはるかに優れたオプションです。以下の xml を使用して、必要なレイアウトを実現できます。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout
            android:id="@+id/top_layout"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Medium Text"
                android:id="@+id/textView" android:layout_alignBottom="@+id/button"
                android:layout_alignParentTop="true"/>
        <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button"
                android:id="@+id/button" android:layout_alignParentTop="true"       android:layout_toRightOf="@+id/textView"/>
    </LinearLayout>
    <LinearLayout
            android:id="@+id/bottom_layout"
            android:layout_alignParentBottom="true"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            <Button
                style="?android:attr/buttonStyleSmall"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="New Button"
                android:id="@+id/button2" />
    </LinearLayout>

    <LinearLayout
            android:layout_below="top_layout"
            android:layout_above="bottom_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/relativeLayout">
            <ListView
                android:id="@+id/s1ListView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">
            </ListView>
    </LinearLayout>
</RelativeLayout>
于 2013-06-03T12:46:06.073 に答える