У меня есть ImageButton
, который будет перемещен после того, как была нажата (onClickListener реализуется) и LinearLayout
, который будет установлен в видимой когда ImageButton
щелкнул (также в методе onClick).ImageButton не видно после того, как другой макет является видимым на реальном устройстве
Странное поведение: На моем виртуальном устройстве он работает нормально, но на реальном устройстве ImageButton
не виден снова после того, как LinearLayout
установлен в видимой. Я также установить макет отсроченный (с вторым) для видимой и ImageButton
был перенесен правильно, но, как я сказал, что это не видно снова (также, когда я поставил его в явном виде на VISIBLE), когда LinearLayout
был установлен в видимом)
Любые идеи по устранению этой проблемы?
onClickListener
реализация (я знаю, что жестко закодированные значения нечувствительны, но приложение работает только для одного конкретного устройства):
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());
}
});
}
и расположение XML:
<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>