ListView 重叠折叠工具栏
Posted
技术标签:
【中文标题】ListView 重叠折叠工具栏【英文标题】:ListView overlaps Collapsing Toolbar 【发布时间】:2019-05-23 00:34:26 【问题描述】:我曾经使用 android Studio 中的 Project-Template 设置一个折叠工具栏,并尝试在 NestedScrollView 中实现一个 ListView(参见下面的代码)
我有最新的 Android Studio 版本,并且 AVD 在 Android 9 上运行
我已经试过了
-
更改 NestedScrollView 的
android:fillViewport="true"
实现我自己的 ListView (Collapsing Toolbar with ListView)
将 ListView 包装到 LinearLayout 中
我找到了几个使用RecyclerView
的解决方案,我不想使用这种方法 - 如果这是最后一种方法,我会;)。 (这是一个学校项目,我们应该只使用我们在学校学到的组件掌心)
我将跳过以下几个 XML 导入行:
<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_
android:layout_
android:fitsSystemWindows="true"
tools:context=".MainScreen">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_
android:layout_
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_
android:layout_
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@+id/toolbar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
app:layout_collapseMode="pin"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<fragment
android:id="@+id/fragment1"
android:name="net.mountdev.alcohollevel.EntryList"
android:layout_
android:layout_ />
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_
android:layout_
android:layout_margin="@dimen/fab_margin"
app:layout_anchor="@id/app_bar"
app:layout_anchorGravity="bottom|end"
app:srcCompat="@drawable/ic_add_white_24dp" />
</android.support.design.widget.CoordinatorLayout>
嵌套列表视图
<android.support.v4.widget.NestedScrollView 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_
android:layout_
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context=".MainScreen"
tools:showIn="@layout/activity_main_screen">
<ListView android:id="@id/android:list"
android:layout_
android:layout_
android:drawSelectorOnTop="false"/>
</android.support.v4.widget.NestedScrollView>
目前的结果是,ListView 在 ActionBar 中不应该是(见截图)
【问题讨论】:
【参考方案1】:问题在于fragment
。它占据了整个空间。尝试类似
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_
android:layout_
android:fitsSystemWindows="true">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/toolbar_layout"
android:layout_
android:layout_
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:toolbarId="@+id/toolbar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
app:layout_collapseMode="pin"
/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<fragment
android:layout_below="@+id/app_bar"
android:id="@+id/fragment1"
android:layout_
android:layout_/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_
android:layout_
app:layout_anchor="@id/app_bar"
android:layout_alignParentEnd="true"
android:layout_marginTop="25dp"
android:layout_marginEnd="16dp"
app:layout_anchorGravity="bottom|end"/>
【讨论】:
【参考方案2】:将android.support.design.widget.CoordinatorLayout
更改为RelativeLayout
在你的AppBarLayout
中使用android:layout_alignParentTop="true"
为您的fragment
添加android:layout_below="@+id/app_bar"
【讨论】:
谢谢! ListView 现在位于工具栏下方,但仅显示一个元素 (?)。 floatActionButton 也移到了左上角(如果认为以后可以修复)。 对于浮动按钮添加到它 android:layout_alignParentBottom="true" android:layout_alignParentRight="true" 并且对于可能是因为滚动视图的元素将其更改为其他内容以上是关于ListView 重叠折叠工具栏的主要内容,如果未能解决你的问题,请参考以下文章
java 折叠工具栏在“折叠”工具栏中添加viewFlipper
工具栏折叠时如何使用动画调整搜索视图宽度 [ANDROID]