gpt4 book ai didi

android - 通过滚动隐藏后以编程方式显示工具栏(Android 设计库)

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:24 24 4
gpt4 key购买 nike

我有以下布局:一个抽屉,主要内容 View 有一个 AppBarLayout、RecyclerView 和一个 TextView。当我滚动回收器时,工具栏被正确隐藏。

但是,我有一个用例:当回收站中的所有项目都被移除时,我将其可见性设置为“消失”,并改为显示带有适当消息的 TextView。如果在隐藏工具栏时执行此操作,则用户将无法再次看到工具栏。

是否可以通过编程方式使工具栏完全显示?每当显示 TextView 而不是 RecyclerView 时,我都会这样做。

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
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:animateLayoutChanges="true">

<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

<Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:layout_scrollFlags="scroll|enterAlways"/>

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

<android.support.v7.widget.RecyclerView
android:id="@+id/test_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>

<TextView
android:id="@+id/empty_test_list_info_label"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:padding="@dimen/spacing_big"
android:textAppearance="?android:attr/textAppearanceLarge"
android:visibility="gone"/>

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

<RelativeLayout
android:layout_width="280dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="?android:attr/windowBackground"
android:elevation="10dp"/>

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

顺便说一句,出于某种原因,如果我将 AppBarLayour 放在 RecyclerView 之后,就像所有教程似乎都显示的那样,它会隐藏列表中最上面的项目。它只有在它上面时才能正常工作。

最佳答案

您可以通过访问包含您的工具栏的 AppBarLayout 来实现

这是一个例子:

if (mToolbar.getParent() instanceof AppBarLayout){
((AppBarLayout)mToolbar.getParent()).setExpanded(true,true);
}

setExpanded(expand,animation) 将完成这项工作。您还可以引用 AppBarLayout,而不是从工具栏调用 getParent。

关于android - 通过滚动隐藏后以编程方式显示工具栏(Android 设计库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30969559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com