ich ein ImageButton
habe, die verschoben werden, nachdem es angeklickt wurde (OnClickListener implementiert) und ein LinearLayout
, die sichtbar gesetzt wird, wenn die ImageButton
geklickt (auch in seiner OnClick-Methode).Image ist nicht sichtbar nach anderem Layout sichtbar auf reales Gerät eingestellt ist
Seltsames Verhalten: Auf meinem virtuelles Gerät funktioniert es gut, aber auf dem realen Gerät der ImageButton
nicht wieder sichtbar, nachdem die LinearLayout
zu sichtbar gesetzt. Ich habe auch das Layout verzögert (mit einer Sekunde), sichtbar und die ImageButton
wurde richtig bewegt, aber wie gesagt es wieder nicht sichtbar ist (auch wenn ich es ausdrücklich auf VISIBLE gesetzt), wenn die LinearLayout
wurde auf sichtbar)
Irgendwelche Ideen, wie Sie dieses Problem beheben können?
Die onClickListener
Implementierung (ich weiß, hartcodierte Werte sind nicht mehr reagiert, aber die App funktioniert nur für ein bestimmtes Gerät):
private void setUpMenuBar() {
final LinearLayout menuLayout = (LinearLayout) findViewById(R.id.menu_layout);
menuLayout.setVisibility(View.INVISIBLE);
final int menuLayoutWidth = menuLayout.getWidth();
final ImageButton openMenuBtn = (ImageButton) findViewById(R.id.btn_open_menu);
openMenuBtn.setOnClickListener(new View.OnClickListener() {
boolean menuVisible = false;
@Override
public void onClick(View v) {
Log.d("onClick", "menu visible: " + menuVisible + ", Rigth: " + openMenuBtn.getRight() + ", layoutWidth: " + menuLayoutWidth);
if(menuVisible) {
openMenuBtn.setRight(1920);
openMenuBtn.setLeft(1720);
menuLayout.setVisibility(View.INVISIBLE);
menuVisible = false;
}
else {
openMenuBtn.setRight(1520);
openMenuBtn.setLeft(1320);
menuLayout.setVisibility(View.VISIBLE);
menuVisible = true;
}
Log.d("onClick", "menu visible: " + menuVisible + ", Rigth: " + openMenuBtn.getRight() + ", left: " + openMenuBtn.getLeft());
}
});
}
Und das XML-Layout:
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:src="@mipmap/arrow"
android:background="@null"
android:id="@+id/btn_open_menu"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/menu_layout"
android:orientation="vertical"
android:background="#000000"
android:layout_gravity="right">
<ImageButton
android:layout_width="200dp"
android:layout_height="20dp"
android:layout_gravity="right"
android:layout_weight="33"
android:layout_marginBottom="2dp"
android:src="@mipmap/zahnrad"
android:background="@drawable/btn_menu_settings"/>
<ImageButton
android:layout_width="200dp"
android:layout_height="20dp"
android:layout_gravity="right"
android:layout_weight="33"
android:layout_marginBottom="2dp"
android:src="@mipmap/schraubendreher"
android:background="@drawable/btn_menu_settings"/>
<ImageButton
android:layout_width="200dp"
android:layout_height="20dp"
android:layout_gravity="right"
android:layout_weight="34"
android:src="@mipmap/fragezeichen"
android:background="@drawable/btn_menu_settings_roundet"/>
</LinearLayout>