2015-05-13 1 views
1

Это своего рода продолжение, когда я хотел получить предупреждающий текст внизу экрана (ниже нижней панели инструментов), когда выключен. Когда в автономном режиме выглядит правильно:Android, создающий нижнюю панель инструментов, не перемещается в начало макета

When offline mode selected

Однако, когда я прячу в автономном режиме он хлопает в верхнюю части макета, как таковое (скрывающее все, что я хочу, чтобы показать):

enter image description here

Я попытался установить нижнюю панель инструментов на android:layout_alignParentBottom="true", что не позволяет ей появиться в верхней части, когда я скрываю RelativeLayout с TextView в ней (автономный режим), но затем они накладываются друг на друга, когда я не скрываю автономный режим.

Вероятно, просто для кого-то немного более опытный с Android UI, чем я Компоновка XML в настоящее время выглядит следующим образом:

<RelativeLayout 
    android:id="@+id/mainLyt" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ScrollView 
     android:id="@+id/formScrollView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_above="@+id/bottomBar" > 
     <LinearLayout 
      android:id="@+id/formLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="10dp" 
      android:paddingTop="15dp" 
      android:paddingRight="10dp" 
      android:paddingBottom="15dp" 
      android:orientation="vertical" > 
     </LinearLayout> 

    </ScrollView> 

    <RelativeLayout 
     android:id="@+id/bottomBar" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:orientation="horizontal" 
     android:layout_above="@+id/bottomOffline" 
     android:background="@color/form_toolbar"> 

     <ImageButton 
      android:id="@+id/btnPrev" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="btnPrevClicked" 
      android:layout_alignParentLeft="true" 
      android:focusableInTouchMode="false" 
      android:background="?android:attr/selectableItemBackground" 
      android:src="@drawable/toolbar_prev" 
      android:padding ="8dp" 
      /> 

     <ImageButton 
      android:id="@+id/btnIndex" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/btnPrev" 
      android:onClick="btnIndexClicked" 
      android:focusableInTouchMode="false" 
      android:background="?android:attr/selectableItemBackground" 
      android:src="@drawable/toolbar_index" 
      android:padding ="8dp" 
      /> 

     <ImageButton 
      android:id="@+id/btnValidation" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/btnIndex" 
      android:onClick="btnValidationClicked" 
      android:focusableInTouchMode="false" 
      android:background="?android:attr/selectableItemBackground" 
      android:src="@drawable/toolbar_validate" 
      android:padding ="8dp" 
      /> 

     <ImageButton 
      android:id="@+id/btnNext" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:onClick="btnNextClicked" 
      android:focusableInTouchMode="false" 
      android:background="?android:attr/selectableItemBackground" 
      android:src="@drawable/toolbar_next" 
      android:padding ="8dp" 
      /> 
    <!-- Some Buttons --> 
    </RelativeLayout> 

    <RelativeLayout 
     android:id="@+id/bottomOffline" 
     android:layout_width="match_parent" 
     android:layout_height="34dp" 
     android:layout_alignParentBottom="true" 
     android:background="@color/orangelight" 
     android:gravity="center_horizontal"> 

     <TextView 
      android:id="@+id/offline" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:focusableInTouchMode="false" 
      android:text="OFFLINE MODE" 
      android:textStyle="bold" 
      android:textColor="@color/white" 
      android:padding ="8dp" 
      /> 
    </RelativeLayout> 

</RelativeLayout> 

Спасибо!

ответ

0

Попробуйте обертывание нижние взгляды в LinearLayout и удалить поля ALIGN из двух вложенных друг в друга взглядами

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:layout_alignParentBottom="true" 
android:orientation="vertical"> 

<RelativeLayout 
    android:id="@+id/bottomBar" 
    android:layout_height="wrap_content" 
    android:layout_width="match_parent" 
    android:orientation="horizontal" 
    android:background="@color/form_toolbar"> 

    <ImageButton 
     android:id="@+id/btnPrev" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="btnPrevClicked" 
     android:layout_alignParentLeft="true" 
     android:focusableInTouchMode="false" 
     android:background="?android:attr/selectableItemBackground" 
     android:src="@drawable/toolbar_prev" 
     android:padding ="8dp" 
     /> 

    <ImageButton 
     android:id="@+id/btnIndex" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/btnPrev" 
     android:onClick="btnIndexClicked" 
     android:focusableInTouchMode="false" 
     android:background="?android:attr/selectableItemBackground" 
     android:src="@drawable/toolbar_index" 
     android:padding ="8dp" 
     /> 

    <ImageButton 
     android:id="@+id/btnValidation" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@+id/btnIndex" 
     android:onClick="btnValidationClicked" 
     android:focusableInTouchMode="false" 
     android:background="?android:attr/selectableItemBackground" 
     android:src="@drawable/toolbar_validate" 
     android:padding ="8dp" 
     /> 

    <ImageButton 
     android:id="@+id/btnNext" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:onClick="btnNextClicked" 
     android:focusableInTouchMode="false" 
     android:background="?android:attr/selectableItemBackground" 
     android:src="@drawable/toolbar_next" 
     android:padding ="8dp" 
     /> 
    <!-- Some Buttons --> 
</RelativeLayout> 

<RelativeLayout 
    android:id="@+id/bottomOffline" 
    android:layout_width="match_parent" 
    android:layout_height="34dp" 
    android:background="@color/orangelight" 
    android:gravity="center_horizontal"> 

    <TextView 
     android:id="@+id/offline" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:focusableInTouchMode="false" 
     android:text="OFFLINE MODE" 
     android:textStyle="bold" 
     android:textColor="@color/white" 
     android:padding ="8dp" 
     /> 
</RelativeLayout> 

+0

Лучше - теперь я могу видеть остальные поля, но он все еще всплывает наверху ... и «Автономный режим» вообще не отображается ... когда в автономном режиме –

+0

whops, установите высоту LinearLayout to "wrap_content" – leibreichb1

+0

Удивительный. Это сделал трюк. Мне нужно посмотреть разницу между «wrap_content» и «parent_match». Но он работает как шарм. –

0

Используя Java, мы можем запрограммировать настройку представления в нижней части экрана, когда вы находитесь в режиме онлайн. Следующее может быть размещено после кода, который вы используете для удаления панели офлайн. (Поскольку вы не публиковали свою Java, я не могу быть более конкретным) Я предположил, что переменная bottomBar имеет тип RelativeLayout и назначается через findViewById(R.id.bottomBar.

RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)bottomBar.getLayoutParams(); 
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
bottomBar.setLayoutParams(params); 

Что это должно сделать, это установить ALIGN_PARENT_BOTTOM флаг (android:layout_alignParentBottom="true" в XML) на нижней панели, так что он будет оставаться на дне, даже после того, как автономный бар удаляется. Таким образом, если добавить, что сразу же после удаления автономной панели, он будет обновлять вид и отобразить строку правильно

+0

T3KBAU5. У меня это работает, как указано выше, но хорошо знать, что если мне нужно сделать это динамически, я тоже могу. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^