无法控制工具栏的可见性

时间:2015-11-18 17:15:26

标签: android toolbar

我无法通过代码行显示和删除工具栏。 它可以做到这一点? 如果我在片段中并希望工具栏短,并且在加载后出现。 我尝试了以下方法无济于事。

工具栏

toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

ActionBar actionBar = getSupportActionBar();

if(actionBar != null) {
     actionBar.setDisplayShowTitleEnabled(false);
}

main_layout.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/apk/res-auto"
    android:id="@+id/DrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:elevation="7dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include
            android:id="@+id/toolbar"
            layout="@layout/toolbar">
        </include>

        <FrameLayout
            android:id="@+id/fragContainer"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:tag="fragContainer" />

    </LinearLayout>

    <RelativeLayout
        android:layout_width="@dimen/drawer_width"
        android:layout_height="match_parent"
        android:layout_gravity="start">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/RecyclerView"
            android:layout_width="@dimen/drawer_width"
            android:layout_height="fill_parent"
            android:layout_gravity="start"
            android:fitsSystemWindows="true"
            android:background="@color/primary"
            android:scrollbars="vertical">

        </android.support.v7.widget.RecyclerView>

        <LinearLayout
            android:id="@+id/footer_menu"
            android:layout_width="@dimen/drawer_width"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/ivFooter"
                android:layout_width="wrap_content"
                android:layout_height="35dp"
                android:layout_gravity="bottom|center"
                android:maxWidth="690dp"
                android:src="@drawable/rodape_menu"
                android:layout_margin="5dp"/>

        </LinearLayout>

    </RelativeLayout>

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

toolbar.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:fitsSystemWindows="true"
    app:elevation="4dp"
    app:theme="@style/CustomActionBar"/>

CustomActionBar.xml

<item name="windowActionBar">false</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>

尝试代码

getSupportActionBar().hide();
getSupportActionBar().show();

findViewById(R.id.toolbar).setVisibility(View.GONE);
findViewById(R.id.toolbar).setVisibility(View.VISIBLE);

1 个答案:

答案 0 :(得分:1)

如果将工具栏设置为操作栏怎么办?

mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().hide();

getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

然后你可以获取动作栏并将其隐藏或随身携带。

编辑:如果您的布局中没有视图,则无法正常工作:

<LinearLayout
    android:id="@+id/container_toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />
</LinearLayout>

工具栏:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:local="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    local:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

这个位于RelativeLayout根布局视图的底部。