对初学者的问题表示歉意,继续我在 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>
工具栏被扔到每个活动中,这是一个例子:
<?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 -->
在活动中使用通常的绑定设置栏:
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
}
很难将菜单项移动到中心。
请寻找这个,如果这可以给你一个想法:在中心显示工具栏的菜单项
但是,如果你想要一个标签,请考虑为这个做一个 TabLayout。供您参考:https://developer.android.com/reference/com/google/android/material/tabs/TabLayout
我认为,您的目标是拥有标签。希望这会有所帮助。
我只是简单地决定将东西改造成 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 重写为这个,其余的为:
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
}
谢谢大家!
这仅供您参考,根据您的需要定制,如果它解决了您的问题,请告诉我…………
<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>