我正在使用android设计支持库。
ListView
第一行与Toolbar
小部件重叠。
在我的MainActivity
我添加了协调布局,并在第一个TAB片段中添加了ListView
布局。
但ListView
切换的第一行是因为Toolbar
标签。
如何解决这个问题?
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/coordi"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.CoordinatorLayout
android:id="@+id/coordinatorLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="#FFEB3B"
app:tabIndicatorHeight="6dp"
app:tabSelectedTextColor="@android:color/white"
app:tabTextColor="@android:color/white" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="16dp"
android:src="@drawable/plus" />
</android.support.design.widget.CoordinatorLayout>
</RelativeLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/layout_drawer_header" />
</android.support.v4.widget.DrawerLayout>
list_view.xml:
-------------
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
答案 0 :(得分:16)
我遇到了类似的问题,在按照最佳答案后,我重写了我的代码以使用RecyclerView
并得到了相同的问题。然后我将此行为添加到我的内容布局中并且它可以正常工作
app:layout_behavior="@string/appbar_scrolling_view_behavior"
答案 1 :(得分:4)
CoordinatorLayout
&#39; ScrollingViewBehavior
仅适用于支持嵌套滚动的视图(例如RecyclerView
)。默认情况下,ListView
不支持,因此CoordinatorLayout
无法正确处理ListView
的位置。
如果您想要设计支持库的所有滚动行为,可以尝试将列表转换为RecyclerView
。 ListView
还获得了API 21中的嵌套滚动支持,您可以尝试使用setNestedScrollingEnabled(true)
启用它,但这显然只适用于Lollipop和更新版本。
此处提供更多信息:ScrollingViewBehavior for ListView
答案 2 :(得分:1)
我遇到了同样的问题,其中listview的一部分与工具栏重叠。 我能够在android 4.4.4(Kitkat)中使用它,但问题无法在Android 5.1(Lolipop)中解决 那么,这是解决此问题的解决方案
<强>布局/ activity_main.xml中强>
SaltStack
我犯的错误是,在 activity_main.xml 中添加 listview 我们不应该添加instated,我们应该添加 listview app_bar_main.xml
<强>布局/ app_bar_main.xml 强>
<include layout="@layout/app_bar_main" android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<android.support.design.widget.NavigationView android:id="@+id/nav_view"
android:layout_width="wrap_content" android:layout_height="match_parent"
android:layout_gravity="start" android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer"
/>
包含代码的其他文件是 的布局/ nav_header_main.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:fitsSystemWindows="true"
tools:context=".MainActivity">
<android.support.design.widget.AppBarLayout android:layout_height="wrap_content"
android:layout_width="match_parent" android:theme="@style/AppTheme.AppBarOverlay">
<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/AartilistView"
android:layout_below="@+id/textView"
android:layout_alignParentStart="true"
android:layout_marginTop="?android:attr/actionBarSize"
/>
<android.support.design.widget.FloatingActionButton android:id="@+id/fab"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom|end" android:layout_margin="16dp"
android:src="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>
<强>布局/ item_view.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="190dp"
android:background="@drawable/background_material_red"
android:orientation="vertical"
>
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="70dp"
android:layout_height="70dp"
android:src="@drawable/logo"
app:border_color="#FF000000"
android:layout_marginLeft="24dp"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginStart="24dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/app_name"
android:textSize="14sp"
android:textColor="#FFF"
android:textStyle="bold"
android:gravity="left"
android:paddingBottom="4dp"
android:id="@+id/username"
android:layout_above="@+id/email"
android:layout_alignLeft="@+id/profile_image"
android:layout_alignStart="@+id/profile_image" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/email"
android:id="@+id/email"
android:gravity="left"
android:layout_marginBottom="8dp"
android:textSize="14sp"
android:textColor="#fff"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/username"
android:layout_alignStart="@+id/username" />
</RelativeLayout>
菜单/ activity_main_drawer.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/icon_image"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:src="@drawable/img"
android:maxHeight="80dp"
android:maxWidth="80dp"
android:longClickable="false"
android:adjustViewBounds="true" android:paddingTop="10dp" android:paddingBottom="10dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Description"
android:id="@+id/icon_text"
android:layout_alignBottom="@+id/icon_image"
android:layout_toEndOf="@+id/icon_image"
android:layout_alignParentEnd="false"
android:layout_alignParentStart="false"
android:paddingBottom="20dp"
android:paddingLeft="20dp" />
</RelativeLayout>
确保构建项目然后运行它。 不要在activity_main.xml中添加listview,而是将其添加到app_bar_main.xml中,无论如何都要包含在activity_main.xml中。
答案 3 :(得分:0)
使用布局边距的bottom / top属性,并调整列表视图以不覆盖工具栏所在的空间。
答案 4 :(得分:0)
答案 5 :(得分:-1)
您可以使用
为Toolbar
添加一些填充
android:paddingBottom="5dp"
这应该在两个元素之间添加一些空间