【问题标题】:Android collapsable Toolbar menu icons disappearingAndroid 可折叠工具栏菜单图标消失
【发布时间】:2018-01-30 22:25:36
【问题描述】:

所以我在我的应用程序和 Java 类中实现了可折叠工具栏,我像这样覆盖 onCreateOptionsMenu 和 onOptionsItemSelected:

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_details, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.action_share:
                break;
            case R.id.action_addToFavorites:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

现在,当我打开活动时,我可以看到菜单图标并使用它们进行操作,直到工具栏折叠。当用户折叠工具栏时,图标会消失。

第二个问题,使用getSupportActionBar().setDisplayHomeAsUpEnabled(true); 方法我得到黑色而不是白色的返回按钮,所以现在我使用这种方法:

tToolbar.setNavigationIcon(getResources().getDrawable(R.drawable.ic_action_navigation_arrow_back));

我对这个问题的问题是如何处理这个导航图标的点击事件?当工具栏折叠并留下左边的填充物时,这个图标也会消失,但事实并非如此。

这是我的代码:

<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"
    tools:context="com.darioradecic.topmusicandartists.Details">


    <android.support.design.widget.AppBarLayout
        android:id="@+id/MyAppbar"
        android:layout_width="match_parent"
        android:layout_height="256dp"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapse_toolbar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fitsSystemWindows="true"
            app:contentScrim="@color/colorPrimary"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <com.android.volley.toolbox.NetworkImageView
                android:id="@+id/imageViewDetailsTopGlobalSongs"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true"
                android:scaleType="centerCrop"
                app:layout_collapseMode="pin" />

            <android.support.v7.widget.Toolbar
                android:id="@+id/tToolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"

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

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="fill_vertical"
        android:padding="10dp"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

我做错了什么?

【问题讨论】:

    标签: java android xml toolbar


    【解决方案1】:

    您使用的是旧版本的支持库(23.0.1) 吗?如果是,则查看最新版本的图标是否不会消失。

    要使用白色后退按钮,请将其添加到 style.xml

    <style name="MyToolbarLight" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorControlNormal">@color/white</item>
    </style>
    

    然后在您的布局 xml 中,添加样式。

    <android.support.v7.widget.Toolbar
    android:id="@+id/tToolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    app:theme="@style/MyToolbarLight"
    />
    

    您的图标正在消失,因为您尚未为工具栏设置折叠模式,因此当您开始滚动时它不会保持固定,只需将其添加到您的工具栏:

     app:layout_collapseMode="pin"
    

    注意:如果包含工具栏布局,则必须指定(或重复)宽度和高度值,collapseMode 是不够的:

    <include layout="@layout/view_toolbar"
             android:layout_width="match_parent"
             android:layout_height="?attr/actionBarSize"
             app:layout_collapseMode="pin"/>
    

    【讨论】:

    • 我正在使用最新的 23.2.1 支持库并设置自定义样式解决了黑色后退箭头按钮问题,但工具栏收起时图标仍然消失
    猜你喜欢
    • 2015-12-28
    • 2017-02-27
    • 2016-08-11
    • 2016-10-01
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    相关资源
    最近更新 更多