0

Ich versuche, herausgefunden, wie MaterialDrawer gestalten https://github.com/mikepenz/MaterialDrawerMaterialDrawer Wie Mini-Schublade anpassen

Bei Moment die Breite zu groß ist. Ich möchte die Breite mit größeren Symbolen kleiner machen, um die Leerzeichen abzudecken und die Hintergrundfarbe zu ändern.

Diese App wird nur für das Tablet sein. danke.

Hier ist meine Schublade:

<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 

Image: enter image description here

ich so etwas bauen wollen: enter image description here

Dank

fragte ich ursprünglich eine Frage, wie Um eine feste Mini-Schublade hier zu ermöglichen Android build mini navigation drawer with Icons

+0

also wollen Sie nicht nur kleiner machen, sondern auch größer als die ursprünglichen 72dp? – mikepenz

+0

Ja, ich möchte die Breite der Mini-Schublade manuell ändern können. und mache dann später die Icons, um die Schubladenbreite zu berechnen. – MrG

+0

benötigen Sie zusätzliche Informationen? – mikepenz

Antwort

1

Diese Antwort basiert auf Versionen > = v5.3.5

Zuerst haben wir die Breite für die MiniDrawer selbst zu definieren. In den unten gezeigten Codebeispielen konfigurieren wir die MiniDrawer und es ist 144dp zu nehmen. Ich empfehle, dies zu tun, bevor Sie die View zu Ihrem Layout hinzufügen, wie in diesem Beispiel gezeigt.

//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); 

Nachdem Sie die MiniDrawer Ansicht hinzugefügt haben sich Ihr Layout möchten Sie die geänderten Abmessungen der MiniDrawerItems definieren Sie dies durch die Definition über Ihre dimens.xml Datei tun können, die folgenden:

<!-- 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> 

Danach Ihre MiniDrawer und die Artikel werden in der richtigen Größe angezeigt.