9

В моем фрагменте у меня есть EditText внутри Scrollview и когда я нажимаю на что я поставил его открыть, как это:Клавиатура перекрывающихся EditText по щелчку

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 

Он отлично работает с первого раза она открывается, но когда я закрываю клавиатуру и снова открываю ее, она перекрывает editText, как я могу установить, что editText всегда открывается в режиме SOFT_INPUT_ADJUST_PAN?

XML-:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:custom="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/alabaster"> 

    <TextView 
     android:id="@+id/semconexao" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:text="Verifique sua conexão com a internet" 
     android:gravity="center" 
     android:layout_marginTop="10dp" 
     android:visibility="gone"/> 


    <ScrollView 
     android:id="@+id/scroll" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/footer"> 

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

      <RelativeLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:visibility="visible"> 



       <com.android.volley.toolbox.NetworkImageView 
        android:id="@+id/imageInst" 
        android:layout_width="match_parent" 
        android:layout_height="200dp" 
        android:scaleType="centerCrop" 
        android:visibility="visible" /> 

       <com.retornar.utils.CircledNetworkImageView 
        android:id="@+id/thumbnail" 
        android:layout_width="@dimen/logo_maior" 
        android:layout_height="@dimen/logo_maior" 
        android:layout_marginLeft="20dp" 
        android:layout_marginTop="100dp" 
        android:adjustViewBounds="true" 
        android:scaleType="centerCrop"> 

       </com.retornar.utils.CircledNetworkImageView> 

       <ImageView 
        android:id="@+id/more" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:src="@drawable/ic_amp" 
        android:visibility="gone" 
        android:layout_alignParentBottom="true" 
        android:layout_alignParentRight="true" 
        android:layout_alignParentEnd="true" /> 

      </RelativeLayout> 


      <TextView 
       android:id="@+id/retornarTitulo" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/imageInst" 
       android:layout_marginTop="20dp" 
       android:gravity="center" 
       android:padding="10dp" 
       android:text="@string/retornarTitulo" 
       android:textColor="@color/armadillo" 
       android:textSize="@dimen/text2" /> 


      <TextView 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/retornarTitulo" 
       android:gravity="center" 
       android:padding="10dp" 
       android:text="@string/retornar" 
       android:textColor="@color/armadillo" 
       android:textSize="@dimen/text1" /> 

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


      <EditText 
       android:id="@+id/campovalor" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="60dp" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="10dp" 
       android:background="@drawable/shadoweditext" 
       android:gravity="center" 
       android:hint="ou entre com um valor" 
       android:imeOptions="actionDone" 
       android:inputType="numberDecimal" 
       android:padding="10dp" 
       android:singleLine="true" /> 


      <View 
       android:layout_width="match_parent" 
       android:layout_height="1dp" 
       android:layout_marginLeft="10dp" 
       android:layout_marginRight="10dp" 
       android:layout_marginTop="20dp" 
       android:background="@color/gray" /> 

      <TextView 
       android:id="@+id/propText" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="30dp" 
       android:layout_marginTop="20dp" 
       android:gravity="center" 
       android:padding="10dp" 
       android:text="Propósito em destaque" 
       android:textColor="@color/armadillo" 
       android:textSize="@dimen/text2" 
       android:visibility="gone" /> 

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

      <ImageView 
       android:id="@+id/maisprop" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:layout_marginTop="20dp" 
       android:src="@drawable/ic_proposito" 
       android:visibility="gone" /> 

      <TextView 
       android:id="@+id/maisproptext" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginBottom="80dp" 
       android:layout_marginTop="10dp" 
       android:gravity="center" 
       android:text="Mais propósitos" 
       android:textColor="@color/armadillo" 
       android:visibility="gone" /> 

     </LinearLayout> 
    </ScrollView> 

    <TextView 
     android:id="@+id/ret" 
     fontPath="fonts/Avenir-Bold.ttf" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:alpha="0.9" 
     android:background="@color/blumine" 
     android:gravity="center" 
     android:padding="15dp" 
     android:text="DOAR" 
     android:textColor="@color/white" /> 

</RelativeLayout> 
+0

Я думаю, вам нужно добавить Scrollview в качестве родителя макета. После этого ваш код будет работать. [this] (http://stackoverflow.com/questions/8000795/android-keyboard-overlaps-with-the-edittext-with-printscreens) ссылка поможет вам – pRaNaY

+0

Вы пытались установить его в манифесте? – zgc7009

+0

@ zgc7009 Как я могу это сделать, используя фрагмент? – AND4011002849

ответ

14

насчет установки RESIZE вместо PAN? Вы сможете сохранить EditText выше SoftKeyboard. Попробуйте следующее:

getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); 

Однако, вместо того, чтобы делать это во время выполнения, вы можете установить его в manifest как Activity(родительского) атрибута. Это также будет обрабатываться в вашем фрагменте (ребенок):

<activity 
    android:name=".NameActivity" 
    android:label="@string/app_name" 
    android:windowSoftInputMode="stateAlwaysHidden|adjustResize"> 

Тогда, как вы можете видеть, EditText выше SoftKeyboard, но с вашего макета, вы должны TextView с android:layout_alignParentBottom="true" атрибуту, который будет перекрывать EditText:

1_screenshot_overlap_resize

Чтобы предотвратить такое поведение, просто установить ScrollView над последним TextView следующим образом:

<ScrollView 
    android:id="@+id/scroll" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id/ret"> <!-- instead of "footer" --> 

И вы получите следующий результат:

2_screenshot_no_overlap_resize

+0

Вот и все, спасибо вам, помощник! – AND4011002849

+1

@Filo Почему не тот же код не работает в BottomSheetFragment, вызывая * getDialog(). GetWindow(). SetSoftInputMode (WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); * в Oncreateview –

5

Попробуйте это, добавьте этот код в AndroidManifest.xml деятельности

android:windowSoftInputMode="adjustPan" 
+0

Желаю, чтобы все проблемы были решены это легко! благодаря –

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