Android 自定义SupportActionBar在重新显示后看起来不同

Android 自定义SupportActionBar在重新显示后看起来不同,android,android-fragments,android-toolbar,Android,Android Fragments,Android Toolbar,我正在尝试构建单个活动应用程序,并在我的活动中使用自定义SupportActionBar。其他视图都是片段 我的自定义SupportActionBar如下所示: 现在我有一个例子,我必须在片段中以全屏模式显示视频。因此,我只是调用SupportActionBar的隐藏函数: override fun onResume() { super.onResume() (activity as MainActivity).supportActionBar!!.hide()} 这很好,但是当我想在视频

我正在尝试构建单个活动应用程序,并在我的
活动中使用自定义
SupportActionBar
。其他视图都是片段

我的自定义
SupportActionBar
如下所示:

现在我有一个例子,我必须在
片段中以全屏模式显示视频。因此,我只是调用
SupportActionBar
的隐藏函数:

override fun onResume() {
super.onResume()
(activity as  MainActivity).supportActionBar!!.hide()}
这很好,但是当我想在视频结束后再次显示该条时,该条看起来就不一样了

在我的
Fragment
中,我从
SupportActionBar
调用show函数,并调用
MainActivity
的initToolbar函数:

override fun onStop() {
    super.onStop()
    (activity as MainActivity).supportActionBar!!.show()
    (activity as MainActivity).initToolbar()
}
fun initToolbar() {
    setSupportActionBar(toolbar_all_custombar)
    supportActionBar!!.setDisplayShowTitleEnabled(false)
    supportActionBar!!.setIcon(R.drawable.ic_launcher)
}
下面是我的
活动
中的initToolbar方法:

override fun onStop() {
    super.onStop()
    (activity as MainActivity).supportActionBar!!.show()
    (activity as MainActivity).initToolbar()
}
fun initToolbar() {
    setSupportActionBar(toolbar_all_custombar)
    supportActionBar!!.setDisplayShowTitleEnabled(false)
    supportActionBar!!.setIcon(R.drawable.ic_launcher)
}
工具栏布局:

<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_all_custombar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
app:titleTextAppearance="@style/AppTheme.TitleTextStyle"
app:titleTextColor="@color/textColorPrimary">

<TextView
    android:id="@+id/toolbar_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:text="@string/all_toolbar_title"
    android:textColor="@android:color/white"
    android:textStyle="bold|italic"/>

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

我不明白为什么我的酒吧在再次展示后看起来不一样。
这种行为的原因是什么

在TextView上添加一些填充或边距(底部),尝试一次

使用

而不是supportActionBar!!。隐藏()

隐藏():如果承载ActionBar的窗口没有该功能,它将调整应用程序内容的大小以适应新的可用空间


设置系统兼容性():通过此系统UI标志隐藏ActionBar可使您与其他屏幕装饰一起更无缝地隐藏它。

再次显示SupportActionBar后,您可以尝试调用
(activity as MainActivity)。SupportActionBar.invalidate()以重新绘制其中的所有视图。这将导致您的supportActionBar被正确地重新绘制。

您可以在想要隐藏supportToolBar时将其设置为null,然后在想要显示它时恢复以前的值

这是经过测试的,在我的情况下有效。

谢谢您的帮助! 我终于解决了。问题是我使用了一些
视图
标志来实现相应
片段
中的全屏模式。因此,我删除了此
片段中的以下函数:

private fun hideSystemUiFullScreen() {
    exoplayer_videoview_container!!.systemUiVisibility = (View.SYSTEM_UI_FLAG_LOW_PROFILE
            or View.SYSTEM_UI_FLAG_FULLSCREEN
            or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
            or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
            or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
}
我没有改变我的
onResume
onStop
方法。因此,问题只是使用
视图
标志来获得全屏模式。

您是否尝试过.setVisibility(View.GONE);和.setVisibility(View.VISIBLE);而不是函数显示和隐藏?