【问题标题】:ListView getting overlapped by another layoutListView 被另一个布局重叠
【发布时间】:2015-12-27 15:46:13
【问题描述】:

早上好。我有这样的布局:

<android.support.v4.widget.DrawerLayout

  <android.support.design.widget.CoordinatorLayout
    ...
  </android.support.design.widget.CoordinatorLayout>

  <android.support.design.widget.NavigationView
    android:id="@+id/main_drawer"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:itemTextColor="@color/jet"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/action_menu" />

  <ListView
      android:id="@+id/navList"
      android:layout_width="200dp"
      android:layout_height="match_parent"
      android:layout_gravity="left|start"
      android:background="@color/chalk" />

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

然后,在我的 Activity 中,我像这样填充 ListView:

String[] osArray = {"CERRAR SESIÓN", "ACERCA DE"};
    arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, osArray);
    listView.setAdapter(arrayAdapter);

我的问题是我用作抽屉标题的布局与 ListView 重叠。我也尝试过给 ListView 一个 marginTop,但是虽然这在 Android Studio 中有效(显然),但在运行代码时它没有解决任何问题。

以防万一,这是我用作抽屉标题的布局:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="@dimen/header_height"
    android:background="@color/accent"
    android:gravity="bottom"
    android:orientation="vertical"
    android:padding="@dimen/header_left_padding"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

<TextView
    android:id="@+id/username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/user_name"
    android:textAppearance="@style/TextAppearance.AppCompat.Body1"
    android:textStyle="bold" />

<TextView
    android:id="@+id/email"
    style="@style/Widget.AppCompat.Spinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/user_email"
    android:textAppearance="@style/TextAppearance.AppCompat.Body1" />

</LinearLayout>

任何帮助将不胜感激,谢谢。

【问题讨论】:

    标签: android xml listview navigation-drawer


    【解决方案1】:

    我认为您误解了NavigationViewDrawerLayout 的旧设计模式。在过去,我们必须使用 listView 来填充抽屉菜单,但随着 NavigationView 的创建,我们现在将我们想要的内容放入 xml 文件中。所以你的布局应该是:

    <android.support.v4.widget.DrawerLayout
    
      <android.support.design.widget.CoordinatorLayout
        ...
      </android.support.design.widget.CoordinatorLayout>
    
      <android.support.design.widget.NavigationView
        android:id="@+id/main_drawer"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:itemTextColor="@color/jet"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/drawer_header"
        app:menu="@menu/action_menu" />
    
    
    
    </android.support.v4.widget.DrawerLayout>
    

    你必须用这两个 xml 文件来填充你的抽屉菜单

    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/action_menu"
    

    您可以使用@layout/drawer_header 设计标题菜单并使用action_menu 创建抽屉菜单的列表项。

    【讨论】:

      【解决方案2】:

      你可以试试

      Theme.Appcompat

      代替线性布局的主题叠加

      【讨论】:

      • 谢谢,但这并没有改变任何事情。
      • 请查看这个问题stackoverflow.com/questions/30978114/…你可能会在这里找到一些有价值的信息
      • 谢谢。它将帮助我将来更新代码。
      猜你喜欢
      • 2013-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多