我使用 MaterialDrawer 库,但由于某些未知原因,抽屉本身可以工作,而工具栏却不能。
我有一个扩展活动的类,它包含这个方法:
public void Drawer(Toolbar toolbar, Context context, android.app.Activity activity){
setSupportActionBar(toolbar);
DatabaseReference rootRef2 = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef2 = rootRef2.child("users").child(getUid());
ValueEventListener valueEventListener2 = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String email = dataSnapshot.child("account").getValue(String.class);
String Avatar = dataSnapshot.child("Avatar").getValue(String.class);
Long coinsAmount = dataSnapshot.child("coinsAmount").getValue(Long.class);
String coinsView = "Баланс: " + coinsAmount;
if (Avatar.equals("1")) {
avatar = (R.drawable.a1);
}
if (Avatar.equals("2")) {
avatar = (R.drawable.a2);
}
IProfile profile = new ProfileDrawerItem()
.withName(email)
.withEmail(coinsView)
.withIcon(avatar);
AccountHeader headerResult = new AccountHeaderBuilder()
.withActivity(activity)
.withHeaderBackground(R.color.grey_300)
.addProfiles(
profile
)
.build();
result = new DrawerBuilder()
.withActivity(activity)
.withToolbar(toolbar)
.withAccountHeader(headerResult)
.addDrawerItems(
new PrimaryDrawerItem()
.withName("Устройства")
.withIcon(R.drawable.device)
.withIdentifier(1)
)
.addDrawerItems(
new PrimaryDrawerItem()
.withName("Сканер")
.withIcon(R.drawable.scaner)
.withIdentifier(2)
)
.addDrawerItems(
new PrimaryDrawerItem()
.withName("Магазины")
.withIcon(R.drawable.shop)
.withIdentifier(3)
)
.addDrawerItems(
new PrimaryDrawerItem()
.withName("Купоны")
.withIcon(R.drawable.coupons)
.withIdentifier(4)
)
.addDrawerItems(
new PrimaryDrawerItem()
.withName("Архив Купонов")
.withIcon(R.drawable.oldcoupons)
.withIdentifier(5)
)
.withOnDrawerItemClickListener((view, i, iDrawerItem) -> {
if(iDrawerItem.getIdentifier() == 1 && !Activity.equals("Menu")){
Intent intent = new Intent(context,MenuActivity.class);
startActivity(intent);
}
else if(iDrawerItem.getIdentifier() == 2 && !Activity.equals("Scaner")){
Intent intent = new Intent(context,DecoderActivity.class);
startActivity(intent);
}
else if(iDrawerItem.getIdentifier() == 3 && !Activity.equals("Shop")){
Intent intent = new Intent(context,ShopActivity.class);
startActivity(intent);
}
else if(iDrawerItem.getIdentifier() == 4 && !Activity.equals("oldCoupons")){
Intent intent = new Intent(context,oldCouponsActivity.class);
startActivity(intent);
}
return false;
})
.build();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(false);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
uidRef2.addValueEventListener(valueEventListener2);
}
所以我连接抽屉
Drawer(toolbar,LibraryActivity.this,LibraryActivity.this);
XML 此活动:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<include
android:id="@+id/mytoolbar"
layout="@layout/toolbar" />
<include layout="@layout/content_menu" />
</androidx.constraintlayout.widget.ConstraintLayout>
另一个重要的细节,如果你放置setSupportActionBar
在 OnCreate Activity 与启动 Activity 工具栏一起加载第二个并立即消失
这是它在实践中的样子
工具栏.xml
<androidx.appcompat.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:iosched="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar_actionbar"
android:layout_width="match_parent"
android:layout_height="@dimen/materialize_toolbar"
android:background="@color/grey_500"
android:minHeight="?attr/actionBarSize"
android:theme="?attr/actionBarTheme" />
地图.xml
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.Activities.MenuActivity"
/>