android 如何在屏幕上水平分布工具栏项?

ar7v8xwq  于 2023-05-05  发布在  Android
关注(0)|答案(3)|浏览(123)

很抱歉我问了初学者这个问题,继续我在Kotlin的第一个学期构建的应用程序项目。
即使将应用程序标题设置为无,项目也会锁定在屏幕右侧。我希望项目均匀分布在工具栏水平没有标题本。
主菜单:

<?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

      <item android:id="@+id/action_view_hunts"
        android:icon="@drawable/ic_sharp_catching_pokemon_24"
        android:title="@string/hunts"
        app:showAsAction= "always" />
      <item android:id="@+id/action_add_hunt"
        android:icon="@drawable/ic_baseline_fiber_new_24"
        android:title="@string/new_hunt"
        app:showAsAction="always|withText"/>
      <item android:id="@+id/action_view_history"
        android:icon="@drawable/ic_baseline_history_24"
        android:title="@string/history"
        app:showAsAction="always"/>
      <item android:id="@+id/action_view_settings"
        android:icon="@drawable/ic_baseline_settings_applications_24"
        android:title="Settings"
        app:showAsAction="always"/>

    </menu>

工具栏被抛到每个Activity中,下面是一个示例:

<?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=".HuntsActivity">

    <!--  Toolbar  -->
    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/bootRed"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />
    <!--  end Toolbar  -->

在Activity中设置条形图,并使用通常的绑定:

setSupportActionBar(binding.toolbar)
    supportActionBar?.title = ""
    
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu, menu)

        val huntsMenuItem = menu?.findItem(R.id.action_view_hunts)
        huntsMenuItem?.setIcon(R.drawable.baseline_catching_pokemon_24_black)

        return true
    }
5lhxktic

5lhxktic1#

很难将菜单项移到中心。
请看这个,如果这可以给予你一个想法:Alinging menu items of a toolbar in the center
但是,如果你想要一个标签,请考虑做一个标签布局这一个。供您参考:https://developer.android.com/reference/com/google/android/material/tabs/TabLayout
我认为,你的目标是有标签。希望这能帮上忙。

rekjcdws

rekjcdws2#

我只是决定重新设计一个BottomNavigationView,而不是使用工具栏。这就是我想要的功能。

<!--  Navigation  -->
<com.google.android.material.bottomnavigation.BottomNavigationView
    android:id="@+id/bottomNav"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:menu="@menu/main_menu"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintBottom_toBottomOf="parent" />
<!--  end Navigation  -->

将xml重写为this,其余部分重写为this:

binding.bottomNav.selectedItemId = R.id.action_view_hunts

binding.bottomNav.setOnItemSelectedListener {
    when (it.itemId) {
        R.id.action_add_hunt -> { startActivity(Intent(applicationContext, NewHuntActivity::class.java)) }
        R.id.action_view_history -> { startActivity(Intent(applicationContext, CompletedHuntsActivity::class.java)) }
        R.id.action_view_settings -> { startActivity(Intent(applicationContext, SettingsActivity::class.java)) }

        else -> {}
        }
        true
    }

谢谢大家!

r6hnlfcb

r6hnlfcb3#

这只是供您参考定制它根据您的需要,让我知道,如果它解决您的问题.........

<RelativeLayout
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=".Testing.TestActivity">

<com.google.android.material.appbar.AppBarLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <androidx.appcompat.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:orientation="horizontal">
            <ImageView
                android:layout_width="50dp"
                android:src="@mipmap/ic_launcher"
                android:layout_margin="10dp"
                android:id="@+id/ic_1"
                android:layout_height="50dp"/>
            <ImageView
                android:layout_width="50dp"
                android:src="@mipmap/ic_launcher"
                android:layout_margin="10dp"
                android:id="@+id/ic_2"
                android:layout_height="50dp"/>
            <ImageView
                android:layout_width="50dp"
                android:src="@mipmap/ic_launcher"
                android:layout_margin="10dp"
                android:id="@+id/ic_3"
                android:layout_height="50dp"/>
            <ImageView
                android:layout_width="50dp"
                android:src="@mipmap/ic_launcher"
                android:id="@+id/ic_4"
                android:layout_margin="10dp"
                android:layout_height="50dp"/>
            <ImageView
                android:layout_width="50dp"
                android:src="@mipmap/ic_launcher"
                android:id="@+id/ic_5"
                android:layout_margin="10dp"
                android:layout_height="50dp"/>

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

相关问题