16

上部にタイトル バーがあり、下部にナビゲーション バーがあるアクティビティを作成したいと考えています。以下に示すように、以前includeはタイトル バー レイアウトとナビゲーション バー レイアウトをメイン レイアウトに含めていました。その結果、タイトル バーとナビゲーション バーの両方が画面の上部に移動します。誰かが理由を教えてもらえますか? ありがとう!

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

    <include android:id="@+id/title_bar" layout="@layout/title_bar" 
        android:layout_alignParentTop="true" />

    <include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
        android:layout_alignParentBottom="true"/> 
</RelativeLayout>

【追記】原因がわかりませんでした。しかし、次の作品:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/home_widget" 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:background="@drawable/background">

<RelativeLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true"
    android:id="@+id/title_bar" >

    <include layout="@layout/title_bar" />
</RelativeLayout>

<RelativeLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true"
    android:id="@+id/navigation_bar" >

    <include layout="@layout/navigation_bar" />
 </RelativeLayout>
4

2 に答える 2

45

含めるレイアウトの属性をオーバーライドするには、レイアウトの幅と高さの両方もオーバーライドする必要があります。これらの設定が両方ともオーバーライドされていない場合、他のレイアウトの変更を試みても無視されます。

上のレイアウト

<include android:id="@+id/title_bar" layout="@layout/title_bar" 
    android:layout_alignParentTop="true"
/>
<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar" 
    android:layout_alignParentBottom="true"/>

必要に応じて、実際にはラップ コンテンツまたはフィルの親を使用する必要があります。

<include android:id="@+id/navigation_bar" layout="@layout/navigation_bar"  android:layout_width="wrap_content"
        android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"/>
于 2011-12-16T17:00:48.570 に答える
0

見た目だけでは、上下のバーの間のスペースを埋めるものは何もありません。

側面として、代わりに LinearLayout を使用し、次のように layout_weight 属性を使用する傾向があります。

title_bar と navigation_bar は layout_weight="0" を取得し、2 つの間のコンテンツは layout_weight="1" を取得します。これは、線形レイアウトの場合、コンテンツを拡張して 2 つの間のスペースを埋めるようにレイアウト マネージャーに指示します。

title_bar コンテンツナビゲーションバー

于 2010-07-10T07:15:52.590 に答える