2015-11-09 2 views
0

В некоторых фрагментах в моем приложении у меня есть EditText в нижней части страницы. Проблема в том, что при открытии клавиатуры клавиатура перекрывает нижнюю часть страницы, чтобы вы не могли видеть EditText. Можно ли выровнять нижнюю часть FrameLayout, которая содержит фрагменты, в верхней части клавиатуры?Align FrameLayout to top of keyboard

Вид на операцию, содержащую FrameLayout:

<?xml version="1.0" encoding="utf-8"?> 
<com.myapp.Layouts.FullDrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity_"> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <include layout="@layout/view_toolbar" /> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <FrameLayout 
       android:id="@+id/content_frame" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_above="@+id/view_menu_bar" /> 

      <include layout="@layout/view_menu_bar" 
       android:layout_height="@dimen/menu_bar_height" 
       android:layout_width="fill_parent" 
       android:layout_alignParentBottom="true" 
       android:id="@+id/view_menu_bar" /> 
     </RelativeLayout> 
    </LinearLayout> 

    <include layout="@layout/view_drawer" 
     android:id="@+id/drawer" 
     /> 

</com.myapp.Layouts.FullDrawerLayout> 

ответ

0

попробовать:

<activity 
    android:windowSoftInputMode="adjustPan"/> 

или:

<activity 
    android:windowSoftInputMode="adjustResize"/> 
+0

AdjustPan просто перемещает всю страницу вверх, а не только высоту FrameLayout. AdjustResize ничего не делает. –

+0

Разве это не решение? Вы можете использовать FrameLayout.setTranslateY() для перемещения рамки. –

+0

Но мне также нужна возможность прокрутки вниз, когда клавиатура открыта. Поэтому мне нужно, чтобы FrameLayout выравнивался по верхней части экрана и верхней части клавиатуры, когда клавиатура открыта. –