Android导航抽屉覆盖了我的主要布局

时间:2015-02-25 10:56:31

标签: android android-layout android-fragments

我最近在Android布局中添加了一个导航抽屉。抽屉本身工作正常,但旧的布局根本没有显示(元素在那里,但不可见)。

我曾尝试过使用元素的定位,但似乎没有任何效果。

这是我的布局:     

<!-- As the main content view, the view below consumes the entire
     space available using match_parent in both dimensions. -->
<FrameLayout android:id="@+id/container" android:layout_width="match_parent"
    android:layout_height="match_parent" android:background="#FFFFFF">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:background="#FFFFFF"
        android:id="@+id/displayframe"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Content"/>



        <Spinner
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_alignParentTop="true"
            android:background="#AAAAAA"
            android:id="@+id/spinner"
            android:layout_margin="15dp"/>

        <ListView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#1399cb"

            android:layout_weight="1"
            />

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/progressBar2"
            android:background="#1399cb"
            android:layout_gravity="center_horizontal" />

        <RelativeLayout
            android:id="@+id/footer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#1399cb"
            android:gravity="center" >


        </RelativeLayout>


    </LinearLayout>
</FrameLayout>
 <fragment android:id="@+id/navigation_drawer"
    android:layout_width="@dimen/navigation_drawer_width"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:name="schoolbus.tracker.datavoice.schoolbusdrawer.NavigationDrawerFragment"
    tools:layout="@layout/fragment_navigation_drawer"
    />   
</android.support.v4.widget.DrawerLayout> 

这是导航抽屉片段:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content"
android:layout_height="match_parent" android:choiceMode="singleChoice"
android:divider="@android:color/black" android:dividerHeight="0dp"
android:background="#cccc" tools:context=".NavigationDrawerFragment"
/>

和我用来夸大它的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
android:background="#1399cb"
tools:context=".MainActivity$PlaceholderFragment">

<ImageView android:id="@+id/icons" android:layout_height="40dp" android:layout_width="40dp"
    android:contentDescription="" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text=""
    android:id="@+id/textView4"
    android:textColor="#FFFFFF"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="6dp"
    android:textSize="19dp"
    android:layout_alignTop="@+id/icons"
    android:layout_toRightOf="@+id/icons"
    android:layout_toEndOf="@+id/icons" />

</RelativeLayout>

提前谢谢。

2 个答案:

答案 0 :(得分:0)

实际上你还没有在这个布局文件中关闭你的FrameLayout,但除此之外我无法看到任何错误。

已编辑:您必须将frameLayout放在LinearLayout

<!-- As the main content view, the view below consumes the entire
                     space available using match_parent in both dimensions. -->

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#FFFFFF"
    android:id="@+id/displayframe">

    <FrameLayout android:id="@+id/container" android:layout_width="match_parent"
    android:layout_height="match_parent" android:background="#FFFFFF">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/Content"/>
        <Spinner
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_alignParentTop="true"
            android:background="#AAAAAA"
            android:id="@+id/spinner"
            android:layout_margin="15dp"/>

        <ListView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/listview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#1399cb"

            android:layout_weight="1"
            />

        <ProgressBar
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/progressBar2"
            android:background="#1399cb"
            android:layout_gravity="center_horizontal" />

        <RelativeLayout
            android:id="@+id/footer"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#1399cb"
            android:gravity="center" >
            </RelativeLayout>
    </FrameLayout>
</LinearLayout>

编译时是否存在任何类型的渲染问题?

答案 1 :(得分:0)

为什么不这样:

主要活动布局

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <!-- The main content view -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- The navigation drawer -->
    <ListView android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#111"/>
</android.support.v4.widget.DrawerLayout>

Drawer

然后在你的活动中只需将片段添加到content_frame即可:

    getFragmentManager().beginTransaction()
            .replace(R.id.content_frame, fragmentToShow)
            .commit();