アクティビティにドロワーを追加するためにMaterialDrawerライブラリを使用しています。アクティビティには、半透明のステータス バーが必要です。下の写真のように:
これは、ライブラリがまだ追加されていないときのアクティビティの最初の部分です。
ライブラリを使用してドロワーを追加すると:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DrawerMenu.addTo(this);
}
}
そしてDrawerMenu
ヘルパークラス:
public class DrawerMenu {
public static void addTo(final Activity activity) {
AccountHeader headerResult = new AccountHeaderBuilder()
.withActivity(activity)
.withHeaderBackground(R.drawable.drawer_header)
.addProfiles(
new ProfileDrawerItem()
.withName("Ashkan")
.withEmail("ashkan@sarlak.com")
.withIcon(ContextCompat.getDrawable(activity, R.drawable.profile_pic))
)
.withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {
@Override
public boolean onProfileChanged(View view, IProfile profile, boolean currentProfile) {
return false;
}
})
.build();
new DrawerBuilder()
.withActivity(activity)
.withAccountHeader(headerResult)
.addDrawerItems(new PrimaryDrawerItem().withName("Login"))
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(View view, int i, IDrawerItem iDrawerItem) {
Toast.makeText(activity, "Login!!!", Toast.LENGTH_LONG).show();
return true;
}
})
.build();
}
}
私はこの結果を得るでしょう:
ステータス バーは明らかに半透明ではなく、アクティビティ コンテンツはその下にありません。
ただし、引き出しを開くと、ステータスバーの下に移動します。
また、これは私が活動に適用しているテーマです。
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">false</item>
</style>
ここで何が問題なのですか?