0

Я пытаюсь понял, как настроить MaterialDrawer по https://github.com/mikepenz/MaterialDrawerMaterialDrawer Как настроить мини ящик

В настоящее время ширина слишком велика. Я хочу сделать ширину меньше с большими значками, чтобы покрыть пробелы и изменить цвет фона.

Это приложение предназначено только для планшетов. спасибо.

Вот мой ящик:

<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 

Изображение: enter image description here

Я хочу, чтобы построить что-то вроде этого: enter image description here

Благодарности

Первоначально я задал вопрос в том, как для включения фиксированного мини-ящика здесь Android build mini navigation drawer with Icons

+0

, так что вы хотите не только сделать его меньше, но и больше, чем оригинальные 72dp? – mikepenz

+0

Да, я хочу, чтобы можно было вручную изменить ширину мини-ящика. а затем сделать значки для математической ширины ящика. – MrG

+0

Вам нужна дополнительная информация? – mikepenz

ответ

1

Этот ответ основан на версии > = 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, определив следующие:

<!-- 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 и предметы будут отображаться в правильном размере.