2017-01-24 4 views
0

Я нашел похожие вопросы по этой проблеме, и поскольку я новичок, я не могу понять, почему ни одно из решений не работает для меня. У меня есть TabLayout, и на каждой вкладке есть фрагмент. В одном фрагменте у меня есть EditText в середине макета, и всякий раз, когда я пытаюсь писать в EditText, клавиатура скрывает половину EditText. Многие предложили добавить android:windowSoftInputMode="adjustPan|adjustResize" в файл манифеста, но это не сработало, так как EditText находится внутри фрагмента, а не активности (я думаю). Я еще не добавил его в файл манифеста в материнской активности фрагментов вкладки, не работал. Может ли кто-нибудь предложить мне, как с этим справиться? Вот мой фрагмент кода макета:Клавиатура скрывает текст редактирования

<FrameLayout 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" 
    android:background="@drawable/background" 
    android:paddingTop="15dp" 
    tools:context="com.example.lenovo.memcreator.fragments.CreateMemoryFragment"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:orientation="vertical" 
     tools:ignore="UselessParent"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dp" 
      android:gravity="center" 
      android:text="@string/create_a_new_memory" 
      android:textSize="20sp" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:orientation="horizontal" 
      android:weightSum="8" 
      tools:ignore="DisableBaselineAlignment"> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="3" 
       android:text="@string/memory_name" 
       android:textSize="17sp" /> 

      <EditText 
       android:id="@+id/memory_name" 
       android:layout_width="0dp" 
       android:layout_height="fill_parent" 
       android:layout_marginLeft="15dp" 
       android:layout_weight="5" 
       android:background="@drawable/edit_text_border" 
       android:gravity="top" 
       android:inputType="textMultiLine" 
       android:padding="5dp" 
       android:scrollbars="vertical" 
       android:textColor="#c2000000" 
       android:textCursorDrawable="@null" 
       android:textSize="16sp" 
       tools:ignore="RtlHardcoded" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="220dp" 
      android:layout_marginTop="20dp" 
      android:orientation="horizontal" 
      android:weightSum="8" 
      tools:ignore="DisableBaselineAlignment"> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_marginTop="5dp" 
       android:layout_weight="3" 
       android:orientation="vertical" 
       android:weightSum="10"> 

       <ImageView 
        android:id="@+id/image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="6" 
        android:contentDescription="" 
        android:scaleType="centerCrop" 
        android:src="@drawable/no_image" 
        tools:ignore="ContentDescription,NestedWeights" /> 

       <Button 
        android:id="@+id/btn_add_image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="2" 
        android:text="@string/browse" 
        android:textAllCaps="false" /> 

       <Button 
        android:id="@+id/btn_capture_image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="2" 
        android:text="@string/capture" 
        android:textAllCaps="false" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="220dp" 
       android:layout_marginLeft="15dp" 
       android:layout_weight="5" 
       android:orientation="vertical" 
       tools:ignore="RtlHardcoded"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="35dp" 
        android:text="@string/post_mem" 
        android:textSize="17sp" /> 

       <EditText 
        android:id="@+id/memory_text" 
        android:layout_width="match_parent" 
        android:layout_height="fill_parent" 
        android:background="@drawable/edit_text_border" 
        android:gravity="top" 
        android:inputType="textMultiLine" 
        android:minLines="6" 
        android:padding="5dp" 
        android:scrollbars="vertical" 
        android:textColor="#c2000000" 
        android:textCursorDrawable="@null" 
        android:textSize="16sp" /> 
      </LinearLayout> 
     </LinearLayout> 

     <Button 
      android:id="@+id/btn_create_memory" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:background="@color/colorPrimary" 
      android:text="@string/create_memory" 
      android:textAllCaps="false" 
      android:textColor="#ffffff" /> 
    </LinearLayout> 
</FrameLayout> 

Вот, как это выглядит, прежде чем печатать: http://imgur.com/a/IXT7V И при вводе: http://imgur.com/a/qvHEm

Любой вид помощи ценится.

+0

Используйте 'ScrollView', чтобы обеспечить гибкость. – W4R10CK

+0

Вместо FrameLayout? –

+0

попробуйте ответить, просто скопируйте его в xml и запустите. – W4R10CK

ответ

0

Используйте этот же код с ScrollView:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout 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" 
android:background="@drawable/background" 
android:paddingTop="15dp" 
tools:context="com.example.lenovo.memcreator.fragments.CreateMemoryFragment"> 

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="20dp" 
     android:layout_marginRight="20dp" 
     android:orientation="vertical" 
     tools:ignore="UselessParent"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dp" 
      android:gravity="center" 
      android:text="@string/create_a_new_memory" 
      android:textSize="20sp" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="40dp" 
      android:orientation="horizontal" 
      android:weightSum="8" 
      tools:ignore="DisableBaselineAlignment"> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="3" 
       android:text="@string/memory_name" 
       android:textSize="17sp" /> 

      <EditText 
       android:id="@+id/memory_name" 
       android:layout_width="0dp" 
       android:layout_height="fill_parent" 
       android:layout_marginLeft="15dp" 
       android:layout_weight="5" 
       android:background="@drawable/edit_text_border" 
       android:gravity="top" 
       android:inputType="textMultiLine" 
       android:padding="5dp" 
       android:scrollbars="vertical" 
       android:textColor="#c2000000" 
       android:textCursorDrawable="@null" 
       android:textSize="16sp" 
       tools:ignore="RtlHardcoded" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="220dp" 
      android:layout_marginTop="20dp" 
      android:orientation="horizontal" 
      android:weightSum="8" 
      tools:ignore="DisableBaselineAlignment"> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_marginTop="5dp" 
       android:layout_weight="3" 
       android:orientation="vertical" 
       android:weightSum="10"> 

       <ImageView 
        android:id="@+id/image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="6" 
        android:contentDescription="" 
        android:scaleType="centerCrop" 
        android:src="@drawable/no_image" 
        tools:ignore="ContentDescription,NestedWeights" /> 

       <Button 
        android:id="@+id/btn_add_image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="2" 
        android:text="@string/browse" 
        android:textAllCaps="false" /> 

       <Button 
        android:id="@+id/btn_capture_image" 
        android:layout_width="match_parent" 
        android:layout_height="0dp" 
        android:layout_weight="2" 
        android:text="@string/capture" 
        android:textAllCaps="false" /> 
      </LinearLayout> 

      <LinearLayout 
       android:layout_width="0dp" 
       android:layout_height="220dp" 
       android:layout_marginLeft="15dp" 
       android:layout_weight="5" 
       android:orientation="vertical" 
       tools:ignore="RtlHardcoded"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="35dp" 
        android:text="@string/post_mem" 
        android:textSize="17sp" /> 

       <EditText 
        android:id="@+id/memory_text" 
        android:layout_width="match_parent" 
        android:layout_height="fill_parent" 
        android:background="@drawable/edit_text_border" 
        android:gravity="top" 
        android:inputType="textMultiLine" 
        android:minLines="6" 
        android:padding="5dp" 
        android:scrollbars="vertical" 
        android:textColor="#c2000000" 
        android:textCursorDrawable="@null" 
        android:textSize="16sp" /> 
      </LinearLayout> 
     </LinearLayout> 

     <Button 
      android:id="@+id/btn_create_memory" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:background="@color/colorPrimary" 
      android:text="@string/create_memory" 
      android:textAllCaps="false" 
      android:textColor="#ffffff" /> 
    </LinearLayout> 
</ScrollView> 

+0

Пробовал делать это тоже. Не работал. Спасибо за ваши предложения. –

+0

@ArifulHoqueMaruf, что произошло, когда вы нажимали кнопку, прокручивали или нет? – W4R10CK

+0

Да, он прокручивается. Но я хочу, чтобы весь текст был выше клавиатуры вместо того, чтобы видеть его полускрытым. Пока я не получу лучший ответ, ответ, который вы предоставили, работает хорошо. Благодаря! –

0

поставил только это Manifest файла 'Активность'

android:windowSoftInputMode="adjustPan" 
+0

OP уже сказал, что он использовал «SoftInputMode». – W4R10CK

+0

Я тоже попробовал. Не работал. –

+0

Пожалуйста, покажите мне ваш файл манифеста @ArifulHoqueMaruf –