3

У меня есть простой макет с:Android - Компоновка Top Bar выталкивается, когда клавиша клавиатуры отображается

  • верхней панели (например, панель действий) с сохранить и кнопку назад
  • и ниже в целях прокрутки с некоторыми EditText внутри ... (проверьте изображение ниже),

enter image description here

Когда я называю клавиатуры, на мой взгляд, это нажать выше ... Я хотел бы мой Top Bar, чтобы остаться всегда видимы и закреплены на верхней ... (проверьте ниже изображение того, что происходит, и то, что я хотел бы случиться)

enter image description here

Я попробовал несколько решений с android:windowSoftInputMode, положив верхнюю планку в качестве относительного расположения и установить isScrollContainer в scrollview, но никто из них не работал для меня ...

код ниже:

<RelativeLayout 
    android:id="@+id/llWriteCommentWall" 
    style="@style/TextSubSeparator" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"> 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    style="@style/TextSubSeparator" 
    android:layout_marginBottom="@dimen/margin_separator_bottom" 
    android:layout_alignParentTop="true"> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="left|center_horizontal|center_vertical" 
     android:orientation="horizontal" 
     android:layout_marginTop="@dimen/margin_title_top" 
     android:layout_marginBottom="@dimen/margin_title_bottom" 
     android:layout_marginLeft="@dimen/margin_title_left" 
     android:layout_marginRight="@dimen/margin_title_right" 
     > 

     <ImageView 
      android:id="@+id/ivMainMenu" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="true" 
      android:scaleType="fitCenter" 
      android:src="@drawable/tk_btn_home" 
      android:onClick="clickHome"/> 

    </LinearLayout> 

    <TextView 
     android:id="@+id/tvSeconHeader" 
     android:text="@string/title" 
     android:layout_width="match_parent" 
     android:layout_weight="2.5" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     style="@style/TextTileHealth"/> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:gravity="right|center_horizontal" 
     android:orientation="horizontal" 
     android:layout_marginTop="@dimen/margin_title_top" 
     android:layout_marginBottom="@dimen/margin_title_bottom" 
     android:layout_marginLeft="@dimen/margin_title_left" 
     android:layout_marginRight="@dimen/margin_title_right"> 
     <ImageView 
      android:id="@+id/ivSave" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:adjustViewBounds="true" 
      android:scaleType="fitCenter" 
      android:src="@drawable/tk_btn_tab_save" 
      android:onClick="clickSave"/> 

    </LinearLayout> 

</LinearLayout> 
</RelativeLayout> 


<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:isScrollContainer="false"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="@dimen/margin_separator_bottom" 
     android:gravity="center"> 

        <!-- EditBoxes --> 
        <LinearLayout 
         android:orientation="vertical" 
         android:layout_width="fill_parent" 
         android:layout_height="fill_parent">  
         <EditText 
          android:id="@+id/et1" 
          style="@style/TextEditBox" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:digits="." 
          android:inputType="numberDecimal" 
          android:maxLength="3" 
          android:layout_weight="0.33" 
          android:gravity="center" 
          android:ems="3"     
          android:layout_marginBottom="10dp"/> 

         <EditText 
          android:id="@+id/et2" 
          style="@style/TextEditBox" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:digits="." 
          android:inputType="numberDecimal" 
          android:maxLength="3" 
          android:layout_weight="0.33" 
          android:gravity="center" 
          android:ems="3" 
          android:layout_marginBottom="10dp"/> 
         <EditText 
          android:id="@+id/et3" 
          style="@style/TextEditBox" 
          android:layout_width="fill_parent" 
          android:layout_height="wrap_content" 
          android:digits="." 
          android:inputType="numberDecimal" 
          android:maxLength="3" 
          android:layout_weight="0.33" 
          android:gravity="center" 
          android:ems="3"/>     
         </LinearLayout>  

    </LinearLayout> 
</ScrollView> 

и Manifest:

<activity 
     android:name="com.example.slyzer.gui.new.NewValue" 
     android:label="@string/app_name" 
     android:windowSoftInputMode="adjustResize" 
     android:screenOrientation="portrait"> 
    </activity> 

EDIT:

Недавно я узнать, что, когда вы кладете свою деятельность в качестве Full Screen:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 

, окна начинает действовать отличается от обычного: https://code.google.com/p/android/issues/detail?id=5497&q=fullscreen&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

и как описано Dianne Hackborn в here, вот как он работает, и кажется, что нет никакой заинтересованности в его изменении.

Итак, я попробовал Joseph Johnson's AndroidBug5497Workaround, но я всегда в конечном итоге с «дополнительной» пустой бар выше моей клавиатуре, и вид стали не показывает, как я хочу, чтобы ...

Кто-нибудь есть хорошее/простое решение этой проблемы?

ответ

0

В манифесте для вашей деятельности будет отображаться верхняя панель и изменить размер прокрутки, чтобы использовать оставшуюся комнату.

Единственная проблема, которую я могу видеть это будет выстраиваться редактирования текста с видимой области после того, как он был изменен (если это необходимо)

+0

для вас первое предложение, это не работает для меня. Для второго, это может быть хорошей идеей ... Я мог бы установить 'android: windowSoftInputMode =" adjustNothing "', а затем установить 'ScrollView' для позиции, которую я хочу ... Легко изменить положение' ScrollView' для определенной позиции в представлении? – slyzer

+0

Стоит попробовать, чтобы scrollview изменил высоту на 'wrap_content', поскольку он не должен быть того же размера, что и родительский. –

0

Добавьте к этому тегу деятельности в манифесте:

android:windowSoftInputMode="adjustPan" 

Или программно:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 
+0

Спасибо за комментарий ... Я считаю, что я это пробовал ... но, чтобы быть уверенным, я внес изменения и все еще не работает ... любая другая идея? – slyzer