Es gibt mindestens ein halbes Dutzend Möglichkeiten, dies zu tun, aber wahrscheinlich die einfachste und kürzeste Reflektion verwendet die ActionBarDrawerToggle
‚s Drawable
, zu greifen und seine Richtung drehen.
Dieses Beispiel umschließt diese Funktionalität in einer Unterklasse und sollte unabhängig von Ihrer ActionBar
/Activity
Konfiguration funktionieren (vorausgesetzt, die ursprüngliche Klasse funktionierte dort an erster Stelle).
public class FlippedDrawerToggle extends ActionBarDrawerToggle {
public FlippedDrawerToggle(Activity activity, DrawerLayout drawerLayout,
int openDrawerContentDescRes, int closeDrawerContentDescRes) {
this(activity, drawerLayout, null,
openDrawerContentDescRes, closeDrawerContentDescRes);
}
public FlippedDrawerToggle(Activity activity, DrawerLayout drawerLayout,
Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) {
super(activity, drawerLayout, toolbar,
openDrawerContentDescRes, closeDrawerContentDescRes);
try {
Field sliderField = ActionBarDrawerToggle.class.getDeclaredField("mSlider");
sliderField.setAccessible(true);
DrawerArrowDrawable arrow = (DrawerArrowDrawable) sliderField.get(this);
arrow.setDirection(DrawerArrowDrawable.ARROW_DIRECTION_RIGHT);
}
catch (NoSuchFieldException | IllegalAccessException e) {
// Fail silently
}
}
}
Dadurch wird nur die Richtung des Bilds des Kippschalters geändert. Wenn Sie eigentlich das ganze ActionBar
/Toolbar
umdrehen möchten, sollten Sie stattdessen die Richtung des Layouts entsprechend ändern.
Bildvisualisierung wird hilfreich sein –