状态栏切断了工具栏

时间:2019-05-19 03:06:51

标签: android xml kotlin

我的Toolbar's顶部约束被约束为parent。但是,系统尚未考虑状态栏,因此Toolbar已被切断:

enter image description here

我看到了其他答案,这些答案建议将android:fitsSystemWindows="true"添加到根视图中,所以我做到了。但是它并没有改变任何东西。

activity_home.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
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=".Home"
android:fitsSystemWindows="true">

<androidx.appcompat.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorToolbar"
    android:elevation="10dp"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintBottom_toTopOf="@id/viewpager">

</androidx.appcompat.widget.Toolbar>

...

及其随附的HomeActivity.kt

class Home : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_home)
        setSupportActionBar(toolbar)
        toolbar.inflateMenu(R.menu.menu_home)
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        val inflater: MenuInflater = menuInflater
        inflater.inflate(R.menu.menu_home, menu)
        return true
    }

有什么主意我可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  • 尝试使用工具栏中的android:fitsSystemWindows="true"作为 好吧。
  

在Android和材料设计文档中,每种屏幕配置的状态栏高度均为24dp。

  • 因此,如果找不到其他解决方案,则可以简单地使用:

            android:paddingTop="24dp"
    

    在工具栏内。 (或根据需要改为保证金)

  • 还有另一件事可能导致使用约束布局是:

    您正在使工具栏位于视图寻呼机上方,而不是位于工具栏下方,请尝试将app:layout_constraintBottom_toTopOf="@id/viewpager"从工具栏更改为视图寻呼机,如下所示: app:layout_constraintTop_toBottomOf="@id/toolbar"

您可以发布完整的XML文件和应用主题吗?