我试图找出如何通过https://github.com/mikepenz/MaterialDrawer
自定义MaterialDrawer目前宽度太大。 我想用更大的图标来缩小宽度以覆盖空间并改变背景颜色。
此应用仅适用于平板电脑。 感谢。
这是我的抽屉:
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/toolbar">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Place your content here -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New Button"
android:id="@+id/button2"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_marginBottom="215dp" />
</RelativeLayout>
</LinearLayout>
result = new DrawerBuilder()
.withActivity(this)
.addDrawerItems(
new PrimaryDrawerItem().withName("1").withIcon(FontAwesome.Icon.faw_home).withIdentifier(1),
new PrimaryDrawerItem().withName("2").withIcon(FontAwesome.Icon.faw_home).withBadge("22").withBadgeStyle(new BadgeStyle(Color.RED, Color.RED)).withIdentifier(2),
new PrimaryDrawerItem().withName("3").withIcon(FontAwesome.Icon.faw_home).withIdentifier(3)
) // add the items we want to use with our Drawer
.withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
@Override
public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
if (drawerItem instanceof Nameable) {
Toast.makeText(MainActivity.this, ((Nameable) drawerItem).getName().getText(MainActivity.this), Toast.LENGTH_SHORT).show();
}
return false;
}
})
.withGenerateMiniDrawer(true)
.withSavedInstance(savedInstanceState)
// build only the view of the Drawer (don't inflate it automatically in our layout which is done with .build())
.buildView();
miniResult = result.getMiniDrawer();
View view = miniResult.build(this);
LinearLayout container = (LinearLayout) findViewById(R.id.container);
container.addView(view, 0); //view is the view of your MiniDrawer
谢谢
我最初问了一个关于如何在这里启用固定迷你抽屉的问题 Android build mini navigation drawer with Icons
答案 0 :(得分:1)
此答案基于&gt; = v5.3.5
版本首先,我们必须定义MiniDrawer
本身的宽度。在下面显示的代码示例中,我们将MiniDrawer
及其项目配置为 144dp 。我建议在将View
添加到您的布局之前执行此操作,如此示例所示。
//get the MiniDrawer
MiniDrawer miniDrawer = result.getMiniDrawer();
//build it and get the view
View miniDrawerView = miniDrawer.build(this);
//define the width (You could also do it via the LayoutParams
miniDrawerView.setMinimumWidth((int) UIUtils.convertDpToPixel(144, this));
//add the MiniDrawer to your view hirachy
findViewById(R.id.frame_container)).addView(miniDrawerView, 0);
将MiniDrawer
视图本身添加到您的布局后,您想要定义MiniDrawerItems
的更改尺寸,您可以通过dimens.xml
文件定义以下内容来执行此操作:< / p>
<!-- required for a changed size -->
<!-- 144dp = the full width of the MiniDrawer -->
<dimen name="material_mini_drawer_item">144dp</dimen>
<!-- 144dp - 8dp padding around = 128dp -->
<dimen name="material_mini_drawer_item_icon">128dp</dimen>
<!-- 144dp - 16dp padding around = 112dp -->
<dimen name="material_mini_drawer_item_profile_icon">112dp</dimen>
<!-- optional configurable dimensions -->
<dimen name="material_mini_drawer_item_padding">4dp</dimen>
<dimen name="material_mini_drawer_item_padding_sides">8dp</dimen>
<dimen name="material_mini_drawer_item_icon_padding">16dp</dimen>
<dimen name="material_mini_drawer_item_badge_text">12sp</dimen>
<dimen name="material_mini_drawer_item_profile_icon_padding">16dp</dimen>
在此之后,您的MiniDrawer
和项目将以正确的尺寸显示。