如何在没有支持库的情况下将MaterialToolbar设置为ActionBar

Mac*_*ver 4 android android-activity kotlin android-actionbar android-toolbar

有没有办法将 a 设置MaterialToolbarActivityan ActionBarToolbar每当我尝试设置我的时,Android Studio 都会不断向支持库请求。

必需:工具栏?- 找到:材质工具栏

XML

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.appbar.AppBarLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/myAppBarLayout">

    <com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/myCollapsingToolbarLayout"
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:fitsSystemWindows="true"
        app:layout_scrollFlags="scroll|snap|exitUntilCollapsed">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/myToolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:contentInsetStartWithNavigation="0dp"
            app:layout_collapseMode="pin" />
    </com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>
Run Code Online (Sandbox Code Playgroud)

科特林

class MainActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.collapsingtoolbar_and_recyclerview)

        val mCoordinatorLayout = findViewById<CoordinatorLayout>(R.id.myCoordinatorLayout)
        val mCollapsingToolbarLayout = findViewById<CollapsingToolbarLayout>(R.id.myCollapsingToolbarLayout)
        val mToolbar = findViewById<MaterialToolbar>(R.id.myToolbar)

        // ...Do other stuff here
        setActionBar(mCollapsingToolbarLayout)
        mCollapsingToolbarLayout.title = "Hello, world!"
    }
}
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 5

setActionBar()需要一个框架 ToolbarMaterialToolbar正确扩展 AndroidX Toolbar,这意味着您必须使用AppCompatActivityandsetSupportActionBar()而不是Activityand setActionBar()

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.collapsingtoolbar_and_recyclerview)

        //[...]
        val toolbar = findViewById<MaterialToolbar>(R.id.myToolbar)
        setSupportActionBar(toolbar)

        // ...Do other stuff here
        supportActionBar.title = "My MainActivity"
        supportActionBar.setDisplayHomeAsUpEnabled(true)
    }
}
Run Code Online (Sandbox Code Playgroud)