如何在TabLayout中添加菜单选项?

时间:2019-06-19 03:06:08

标签: android android-layout

我正在制作带有选项卡式活动的android应用程序。我希望三个点菜单选项显示在选项卡的右侧。我怎样才能做到这一点? 我希望TabLayout的菜单选项只是屏幕截图中显示的菜单选项。 screenshot

2 个答案:

答案 0 :(得分:1)

活动布局:

...
<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay">

        <com.google.android.material.tabs.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            app:tabBackground="@drawable/tab_selector"
            app:tabTextColor="@drawable/tab_selector"
            app:tabMode="scrollable"/>

    </androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
...

活动类别:

class MainActivity : AppCompatActivity() {

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

        val toolbar = findViewById<Toolbar>(R.id.my_toolbar)
        setSupportActionBar(toolbar)
    }

    override fun onCreateOptionsMenu(menu: Menu): Boolean { ... }

    override fun onOptionsItemSelected(item: MenuItem): Boolean { ... }
}

结果:

enter image description here

要将TabLayout放置在应用程序名称和菜单下方,例如:

enter image description here

您可以这样做:

...
<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/AppTheme.AppBarOverlay">
    
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/my_toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:popupTheme="@style/AppTheme.PopupOverlay"/>
    
    <com.google.android.material.tabs.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        app:tabBackground="@drawable/tab_selector"
        app:tabTextColor="@drawable/tab_selector"
        app:tabMode="scrollable"/>

</com.google.android.material.appbar.AppBarLayout>
...

答案 1 :(得分:0)

要创建菜单,请创建一个名为“ menu”的新资源目录,并创建一个名为“ main_menu.xml”的菜单资源文件。此外,您还可以在菜单中创建所需的项目 。然后,您可以使用onCreateOptionsMenu来扩展.java文件中的菜单。 之后,当用户选择菜单中的一个选项时,请使用onOptionsItemSelected来完成某些任务。