工具栏/topbar/actionbar中的Android Studio xml问题



我目前正在为我妈妈做一个个人项目,因为她喜欢植物/花卉,所以我决定制作一个应用程序,在制作工具栏/操作栏/顶部栏的过程中遇到了一个问题(我真的不知道该指哪个名字,因为我研究了很多,我想每个人都给不同的名字(

所以问题来了。。

我所做的设计并希望作为最终结果:

我的目标是这样的这是给导航抽屉的

目前,经过一些研究并试图理解导航抽屉和工具栏,我发现目前很难理解,因为感觉太笨重和令人困惑,我得到了这个:

工具栏/actionbar/topbar这个是抽屉

问题是我不能添加购物车图标,我也做了一个菜单来添加它,但它没有出现

我的菜单

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/tool_cart"
android:contentDescription="@string/cart"
android:icon="@drawable/cart_icon"
android:title="@string/cart"
app:showAsAction="always" />
</menu>

我的抽屉

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/nav_home"
android:title="@string/home"
android:icon="@drawable/home_icon"/>
<item android:id="@+id/nav_promotions"
android:title="@string/promotions"
android:icon="@drawable/promotion_icon"/>
<item android:id="@+id/nav_gallery"
android:title="@string/gallery"
android:icon="@drawable/gallery_icon"/>
<item android:id="@+id/nav_order_history"
android:title="@string/old_shipping_orders"
android:icon="@drawable/history_icon"/>
</group>
<group android:checkableBehavior="single">
<item android:id="@+id/nav_account"
android:title="@string/account"
android:icon="@drawable/name_acc_icon"/>
<item android:id="@+id/nav_about_us"
android:title="@string/about_us"
android:icon="@drawable/about_us_icon"/>
<item android:id="@+id/nav_settings"
android:title="@string/settings"
android:icon="@drawable/setings_icon"/>
<item android:id="@+id/nav_log_ou"
android:title="@string/log_off"
android:icon="@drawable/logout_icon"/>
</group>
</menu>

我的活动xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout 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"
android:background="@color/light_green_bg"
tools:context=".Home"
android:id="@+id/drawer_layout"
android:fitsSystemWindows="true"
tools:openDrawer="start">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="visible">

<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
app:layout_scrollFlags="scroll|enterAlways|snap"
android:layout_height="?actionBarSize"
android:background="@color/dark_green_bg"
android:elevation="6dp"
app:menu="@menu/menu_cart"
android:theme="@style/App.ToolbarStyle"
app:titleTextAppearance="@style/App.ToolbarTitleTex"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:titleTextColor="@color/light_green_bg" />
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view_home"
android:layout_width="wrap_content"
android:layout_height="match_parent"
app:itemTextColor="@color/brown"
android:layout_gravity="start"
android:visibility="visible"
app:headerLayout="@layout/header_nav_drawer"
app:itemIconTint="@color/brown"
app:menu="@menu/nav_drawer"
/>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.bottomappbar.BottomAppBar
android:id="@+id/bottomAppBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:fabAnimationMode="slide"
app:fabCradleMargin="10dp"
app:fabCradleRoundedCornerRadius="20dp">
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginEnd="16dp"
android:background="@android:color/transparent"
app:menu="@menu/bottom_nav" />
</com.google.android.material.bottomappbar.BottomAppBar>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fabChat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentEnd="true"
android:layout_gravity="bottom|end"
android:layout_marginEnd="12dp"
android:layout_marginBottom="68dp"
android:src="@drawable/chat_icon"
app:shapeAppearanceOverlay="@style/fab_3_rounded"
android:contentDescription="TODO" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.drawerlayout.widget.DrawerLayout>

我的主页.kt

class Home : AppCompatActivity() {
private lateinit var binding: ActivityHomeBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.bottomNavView.background = null
// binding.bottomNavView.menu.getItem(2).isEnabled = false
setSupportActionBar(binding.toolbar)
supportActionBar!!.setTitle(R.string.app_name_spaced)
binding.navViewHome.bringToFront()
val toggle = ActionBarDrawerToggle(this,binding.drawerLayout,binding.toolbar,R.string.drawer_open,R.string.drawer_closed)
binding.drawerLayout.addDrawerListener(toggle)
toggle.syncState()
/*            binding.navViewHome.setNavigationItemSelectedListener(this)
binding.navViewHome.setCheckedItem(R.id.nav_home)*/
}

override fun onBackPressed() {
if(binding.drawerLayout.isDrawerOpen(GravityCompat.START)){
binding.drawerLayout.closeDrawer(GravityCompat.START)
}
else{
super.onBackPressed()
}
}
}

在我问这里之前,我试图找到解决方案,将出现的图标(如第一个图像和文本(放在中心,但我就是找不到它,也无法使它以某种方式工作,所以我再次就这个问题或代码本身寻求帮助和指导。

我是一名学生,我努力学习/实践我想在业余时间做个人项目的语言,任何建议或帮助都非常感谢!

更新我发现人们实际上对支持操作栏有同样的东西,但如果没有,我似乎无法使其工作

我得到了解决方案,以防有人搜索与我相同的东西

基本上,如果你像我一样使用setSupportActionBar,你需要覆盖它。

示例

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_cart, menu)
return true
}

最新更新