Tüm Etkinliklerim'e bir NavigationDrawer eklemek istiyorum. Stackoverflow ve diğer forumlarda bulduğum birçok çözümden memnun değilim. Sonra bu çok kolay gibi görünüyor bu MaterialDrawer library bulundu. Ancak, Çekmecedeki tüm öğeler için kendi stilini uygulamak istediğimi biliyorum. Bunu bu kütüphaneyle nasıl yapabilirim?Birden çok Etkinlikte ve Tarz Çizgisinde NavigationDrawer
cevap
MaterialDrawer
esneklik göz önünde bulundurularak tasarlanmıştır. IDrawerItem
arabirimini kaldıran nesneleri alır. Böylece sadece IDrawerItem
arayüzünü kullanarak kendi öğelerinizi kolayca ekleyebilirsiniz. DrawerItems
gibi zaten var olan bazı varsayılan PrimaryDrawerItem
gibi (sadece genişletebilirsiniz) veya tamamen özel bir yaklaşımla devam edebilirsiniz.
İşleri kolaylaştırmak için, MaterialDrawer
, çoğu öğe için gereken varsayılan davranışları zaten uygulayan AbstractDrawerItem
ile birlikte gelir.
Örnek uygulama here'da eklenen özel DrawerItems'e göz atabilirsiniz.
Tam bir özel öğe hiçbir sınırlama yoktur IconDrawerItem
public class IconDrawerItem extends AbstractDrawerItem<IconDrawerItem, IconDrawerItem.ViewHolder> {
protected ImageHolder icon;
protected ImageHolder selectedIcon;
protected boolean iconTinted = false;
protected ColorHolder iconColor;
protected ColorHolder selectedIconColor;
protected ColorHolder disabledIconColor;
//GETTER & SETTER REMOVED TO KEEP THE SNIPPET SMALL
@Override
public int getType() {
return R.id.material_drawer_item_icon_only;
}
@Override
@LayoutRes
public int getLayoutRes() {
return R.layout.material_drawer_item_icon_only;
}
@Override
public void bindView(ViewHolder viewHolder) {
Context ctx = viewHolder.itemView.getContext();
//set the identifier from the drawerItem here. It can be used to run tests
viewHolder.itemView.setId(hashCode());
//get the correct color for the icon
int iconColor;
if (this.isEnabled()) {
iconColor = ColorHolder.color(getIconColor(), ctx, R.attr.material_drawer_primary_icon, R.color.material_drawer_primary_icon);
} else {
iconColor = ColorHolder.color(getDisabledIconColor(), ctx, R.attr.material_drawer_hint_icon, R.color.material_drawer_hint_icon);
}
int selectedIconColor = ColorHolder.color(getSelectedIconColor(), ctx, R.attr.material_drawer_selected_text, R.color.material_drawer_selected_text);
//get the drawables for our icon and set it
Drawable icon = ImageHolder.decideIcon(getIcon(), ctx, iconColor, isIconTinted(), 1);
Drawable selectedIcon = ImageHolder.decideIcon(getSelectedIcon(), ctx, selectedIconColor, isIconTinted(), 1);
ImageHolder.applyMultiIconTo(icon, iconColor, selectedIcon, selectedIconColor, isIconTinted(), viewHolder.icon);
//call the onPostBindView method to trigger post bind view actions (like the listener to modify the item if required)
onPostBindView(this, viewHolder.itemView);
}
@Override
public ViewHolderFactory getFactory() {
return new ItemFactory();
}
public static class ItemFactory implements ViewHolderFactory<ViewHolder> {
public ViewHolder create(View v) {
return new ViewHolder(v);
}
}
protected static class ViewHolder extends RecyclerView.ViewHolder {
private View view;
protected ImageView icon;
private ViewHolder(View view) {
super(view);
this.view = view;
this.icon = (ImageView) view.findViewById(R.id.material_drawer_icon);
}
}
}
olduğunu. Türü, tanımlayıcı, kullanılan düzeni tanımlamak ve verileri tüm görünümlere ayarlamak için çağrılacak olan bindView()
'u uygulamak zorundasınız.
- 1. Android: Bir Etkinlikte Birden Çok Seçenek Menüsü
- 2. GenişletilebilirListView ve NavigationDrawer
- 3. Birden çok etkinlikte kullanılan tekil sınıfının statik yöntemi
- 4. Android, slidingpanelayout vs navigationDrawer
- 5. Neden xdebug'ım tarz değil?
- 6. Birden çok xAxis ve yAxis
- 7. QDataWidgetMapper ve birden çok delege
- 8. Bir Android View'ın kimliği birden çok Etkinlikte güvenli bir şekilde paylaşılabilir mi?
- 9. Birden Çok DB'ye Karşı Birden Çok Bileşen
- 10. Birden çok veri modeliyle birden çok Realms
- 11. Birden çok değişkene birden çok sütun seçin
- 12. Birden çok anahtar birden çok değer
- 13. Android tarz javadocs nasıl oluşturulur?
- 14. Bir sayı çizgisinde pozitif ve negatif değerler hesaplanıyor
- 15. Android birden çok düğme için OnClick yöntemini?
- 16. android-Aynı etkinlikte kalıyor
- 17. C çizgisinde bir kerede bir satır okuma
- 18. fork() - birden çok işlem ve sistem çağrısı
- 19. Yay Birden çok etiket ve ciltleme seç
- 20. Birden Çok Nesneyi Serileştirme ve Serpiştirme
- 21. chrome extension Birden çok sekme ve chrome.runtime.connect
- 22. Elastik Arama "ve" birden çok değer
- 23. Birden çok cuda ve cudnn sürümleri yükleyin
- 24. Birden Çok MySQL Sütunu ve Satırının Birleştirilmesi
- 25. Birden çok dosya nasıl okunur ve yazılır?
- 26. Metin bulma (birden çok kez) ve vurgulama
- 27. SQLAlchemy ve birden çok işlemle bağlantı sorunları
- 28. Birden çok güncelleştirme ve ekleme ile birleştirin
- 29. Birden çok parçacık içeren LibGDX ve ScrollPane
- 30. Birden çok Rota için istisnalar nasıl yapılır