繁体   English   中英

导航抽屉中断布局

[英]Navigation Drawer breaking layout

试图添加一个导航抽屉,这破坏了我的布局。 主布局具有一些按钮,“编辑文本”框和“列表视图”。 抽屉也有一个列表视图。 当我添加抽屉时,主布局上的Listview呈现灰色,并占据整个屏幕。 但是,抽屉工作正常。

这是我的布局文件:

<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="1000dp"
android:id="@+id/drawer_layout"
tools:context=".Departures"
android:weightSum="3" >

<!-- The main content view -->

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:layout_marginBottom="12dp"
    android:layout_marginTop="12dp"
    android:gravity="center_horizontal"
    android:text="@string/activity_departures"
    android:textSize="24sp" />

<TextView
    android:id="@+id/div_bar_1"
    android:layout_width="match_parent"
    android:layout_height="2dp"
    android:layout_marginBottom="7dp"
    android:background="#666666"
    android:text="@string/empty" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/terminal_1_btn"
        style="@style/navigation_btn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="5dp"
        android:layout_weight="1.5"
        android:background="@drawable/navigation_btn"
        android:minHeight="2dp"
        android:text="@string/terminal_1_btn" />

    <Button
        android:id="@+id/terminal_2_btn"
        style="@style/navigation_btn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="10dp"
        android:layout_weight="1.5"
        android:background="@drawable/navigation_btn"
        android:minHeight="2dp"
        android:text="@string/terminal_2_btn" />
</LinearLayout>

<TextView
    android:id="@+id/div_bar_2"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginBottom="7dp"
    android:layout_marginTop="7dp"
    android:background="#999999"
    android:text="@string/empty" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/button1"
        style="@style/navigation_btn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_weight="1"
        android:background="@drawable/navigation_btn"
        android:minHeight="2dp"
        android:text="@string/today_btn" />

    <Button
        android:id="@+id/button2"
        style="@style/navigation_btn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="@drawable/navigation_btn"
        android:minHeight="2dp"
        android:text="@string/tomorrow_btn" />

    <Button
        android:id="@+id/button3"
        style="@style/navigation_btn"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_weight="1"
        android:background="@drawable/navigation_btn"
        android:minHeight="2dp"
        android:text="@string/variable" />
</LinearLayout>

<TextView
    android:id="@+id/div_bar_3"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginBottom="7dp"
    android:layout_marginTop="7dp"
    android:background="#999999"
    android:text="@string/empty" />

<EditText
    android:id="@+id/searchFlights"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:hint="@string/search_flights"
    android:inputType="text"
    android:textSize="14sp" />

<TextView
    android:id="@+id/div_bar_2"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_marginBottom="7dp"
    android:layout_marginTop="7dp"
    android:background="#999999"
    android:text="@string/empty" />

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
</ListView>

<!-- The navigation drawer -->

<include layout="@layout/navigation_drawer" />

 </android.support.v4.widget.DrawerLayout>

包含文件:

    <!-- The navigation drawer -->
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/left_drawer"
android:layout_width="160dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#fff"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" >

抽屉的Listitem:

   <TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_list_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textColor="#000"
android:background="?android:attr/activatedBackgroundIndicator"
android:minHeight="?android:attr/listPreferredItemHeightSmall"/>

根元素的高度(1000dp)仅用于解决模拟器上的显示问题。 救命! 我在这个上停留了几个小时...

根元素的高度(1000dp)仅用于解决模拟器上的显示问题。

我真的不知道您在这里做什么,因为XML对于您所描述的目标而言似乎过于复杂。 建议的设置导航抽屉的方法非常简单明了。 我也看不到您在哪里定义了一个FrameLayout来托管其余的布局(或主要内容)。 这确实是最好的方法,可以使XML看起来更加简洁。 您可以在FrameLayout中定义您的主要内容布局(将您的textview和edittexts包裹在linearlayout或其他内容中),并使它们成为所说FrameLayout的后代。 然后添加包含导航列表的DrawerLayout。

您在ViewGroups外部有子TextViews和EditTexts浮动,这对我来说没有任何意义,为什么它们没有被适当的父级包装。

该示例实现实际上是您所需要的,因为我已经使用ViewPagers,Fragments,Composite View等构建了复杂的布局,并且它们都与Navigation Drawer一起很好地工作,因为我遵循了开发人员指南的建议。

<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"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM