【问题标题】:EditText shrinks onTouchListener in ScrollViewEditText 缩小 ScrollView 中的 onTouchListener
【发布时间】:2013-12-05 13:10:13
【问题描述】:

我有相当复杂的布局。父级 - 滚动视图。然后里面有4个RelativeLayouts。其中之一包含 ExpandedListView。

就是这样:

 <?xml version="1.0" encoding="UTF-8"?>
<ScrollView

            xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:foo="http://schemas.android.com/apk/res/com.assignmentexpert"
            android:id="@+id/scrollNewMessage"
            android:layout_width="fill_parent"
            android:fillViewport="true"
            android:layout_height="fill_parent"
            >
   <RelativeLayout 
                 android:id="@+id/newMessagePanel"
             android:layout_width="match_parent"
            android:orientation="vertical"
            android:layout_height="fill_parent">
    <RelativeLayout
        android:id="@+id/panelInteractions"
        android:layout_width="wrap_content"
        android:layout_height="75dp"
        android:layout_below="@+id/panelButtons"
        android:background="#738495"
        android:orientation="horizontal" >


             <RelativeLayout
               android:id="@+id/deadlineLayout"
               android:layout_width="170dp"
               android:layout_height="fill_parent"
                android:focusableInTouchMode="true"
              android:focusable="true"
               android:orientation="vertical"
              >

               <com.customitems.CustomTextView
                android:id="@+id/textLabel"
                android:text="Deadline:"
                android:layout_height="wrap_content"
                android:layout_width="115dp"
                android:layout_marginBottom="0dp"
                android:layout_marginTop="10dp"
                 android:focusableInTouchMode="true"
                android:focusable="true"
                foo:customFont="Roboto-Regular.ttf"
                android:textSize="14sp"
                android:gravity="left|center"
                android:paddingLeft="10dp"
                android:paddingTop="10dp"
                android:textColor="#43576b"
                android:textStyle="bold" />

               <com.customitems.CustomTextView
                   android:id="@+id/deadlineLabel"
                   android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   foo:customFont="Roboto-Regular.ttf"
                    android:layout_below="@+id/textLabel"
                   android:gravity="top|left"
                   android:paddingLeft="10dp"
                   android:text="Deadline:"
                   android:textColor="#000000"
                   android:textSize="14sp"
                   android:textStyle="bold" />
        </RelativeLayout>
                <Button
                    android:id="@+id/btnPay"
                    android:layout_width="80dp"
                    android:layout_height="45dp"
                      android:layout_centerVertical="true"
                    android:layout_marginLeft="5dp"
                     android:focusableInTouchMode="true"
                     android:focusable="true"
                     android:background="@drawable/button_inactive"
                    android:layout_marginRight="20dp"
                    android:visibility="gone"
                    android:layout_toRightOf="@+id/deadlineLayout"
                    android:gravity="center_vertical|center_horizontal"
                    android:text="Pay"
                    android:textColor="#11375e"
                    android:textSize="18dp"
                    android:textStyle="bold" />
              <com.customitems.CustomTextView
                android:id="@+id/priceLabel"
                android:text="N/A:"
                 android:textSize="18sp"
                android:layout_height="fill_parent"
                android:layout_width="75dp"
                android:layout_alignParentRight="true"
                android:paddingLeft="10dp"
                android:gravity="center_vertical|center_horizontal"
                android:textColor="#FFFFFF"
               foo:customFont="Roboto-Regular.ttf" 
                android:textStyle="bold" />

   </RelativeLayout>

         <RelativeLayout 
    android:id="@+id/tableLayout1"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
      android:layout_below="@+id/panelInteractions"
      android:layout_above="@+id/tableLayout2"
    >

                  <com.customitems.CustomTextView
             android:id="@+id/interactionId"
             android:layout_width="150dp"
             android:layout_weight="1"
             android:layout_height="wrap_content"
             android:text="Reply"
             android:layout_marginTop="5dp"
             android:layout_marginLeft="25dp"
             android:textColor="#FFFFFF"
             android:textSize="14sp"
             android:textStyle="bold"
             foo:customFont="Roboto-Regular.ttf" />

           <com.customitems.CustomEditText
               android:id="@+id/editMessage"
               style="@style/custom_edittext"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:layout_below="@+id/interactionId"
               android:gravity="top|left"
               android:hint="Write your message"
               foo:customFont="Roboto-Regular.ttf" >

     </com.customitems.CustomEditText>



         </RelativeLayout>

 <RelativeLayout 
    android:id="@+id/tableLayout2"
    android:layout_width="fill_parent"
    android:layout_above="@+id/panelMessage2"
    android:layout_height="wrap_content"
    >

         <Button

            android:id="@+id/btnAddFilesMessage"
            style="@style/custom_button"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/gray_button"
            android:layout_centerHorizontal="true"
            android:text="@string/btn_add_files"
             />

         <include layout="@layout/file_list"
                android:id="@+id/messageFileList"
                android:tag="messageFileList"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:visibility="gone"
                android:layout_below="@+id/btnAddFilesMessage"
              />
    </RelativeLayout>




        <LinearLayout
            android:id="@+id/panelMessage2"
            android:layout_marginTop="10dp"
            android:layout_width="fill_parent"
            android:layout_alignParentBottom="true"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:weightSum="1.0">
            <Button
                android:id="@+id/btnSendMessage"
                 style="@style/custom_button"
                 android:layout_marginRight="10dp"
                android:text="Send"
                android:layout_weight="0.58"/>

             <Button
                 android:id="@+id/btnCancelNewMessage"
                style="@style/custom_button"
                android:layout_marginLeft="10dp"
                android:text="Cancel"
                android:background="@drawable/gray_button"
                 android:layout_weight="0.42" />
        </LinearLayout>
    </RelativeLayout>
</ScrollView>   

当我单击 EditText 时,它会缩小并显示软键盘和那些布局,其中包含 android:layout_alignParentBottom="true" 显示。我需要不缩小 EditText。它的原因是什么?也许在 ScrollView 的android:fillViewport="true" 中?或在最后一个布局的android:layout_alignParentBottom="true" 中。请告知如何正确组织这一切。

【问题讨论】:

  • 请您准备一张您的屏幕上发生的事情的图像吗?还请注意,您不能在 Android 的滚动视图中使用 listView,因为它们都是滚动视图。

标签: android android-layout scrollview android-edittext


【解决方案1】:

我认为你应该在 Edittext 中使用它

 android:minLines="10"

 for avoiding shrink.

请查看我所做的更改并尽可能避免使用相对布局。请将 textview 和其他视图恢复为您的自定义视图,这只是一个提示。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollNewMessage"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/newMessagePanel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RelativeLayout
            android:id="@+id/panelInteractions"
            android:layout_width="wrap_content"
            android:layout_height="75dp"
            android:background="#738495"
            android:orientation="horizontal" >

            <RelativeLayout
                android:id="@+id/deadlineLayout"
                android:layout_width="170dp"
                android:layout_height="fill_parent"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/textLabel"
                    android:layout_width="115dp"
                    android:layout_height="wrap_content"
                    android:layout_marginBottom="0dp"
                    android:layout_marginTop="10dp"
                    android:focusable="true"
                    android:focusableInTouchMode="true"
                    android:gravity="left|center"
                    android:paddingLeft="10dp"
                    android:paddingTop="10dp"
                    android:text="Deadline:"
                    android:textColor="#43576b"
                    android:textSize="14sp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/deadlineLabel"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textLabel"
                    android:gravity="top|left"
                    android:paddingLeft="10dp"
                    android:text="Deadline:"
                    android:textColor="#000000"
                    android:textSize="14sp"
                    android:textStyle="bold" />
            </RelativeLayout>

            <Button
                android:id="@+id/btnPay"
                android:layout_width="80dp"
                android:layout_height="45dp"
                android:layout_centerVertical="true"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="20dp"
                android:layout_toRightOf="@+id/deadlineLayout"
                android:background="#FFCCCC"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:gravity="center_vertical|center_horizontal"
                android:text="Pay"
                android:textColor="#11375e"
                android:textSize="18dp"
                android:textStyle="bold"
                android:visibility="gone" />

            <TextView
                android:id="@+id/priceLabel"
                android:layout_width="75dp"
                android:layout_height="fill_parent"
                android:layout_alignParentRight="true"
                android:gravity="center_vertical|center_horizontal"
                android:paddingLeft="10dp"
                android:text="N/A:"
                android:textColor="#FFFFFF"
                android:textSize="18sp"
                android:textStyle="bold" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/tableLayout1"
            android:layout_width="fill_parent"
            android:layout_height="match_parent" >

            <TextView
                android:id="@+id/interactionId"
                android:layout_width="150dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="25dp"
                android:layout_marginTop="5dp"
                android:layout_weight="1"
                android:text="Reply"
                android:textSize="14sp"
                android:textStyle="bold" />

            <EditText
                android:id="@+id/editMessage"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_below="@+id/interactionId"
                android:gravity="top|left"
                android:minLines="10"
                android:hint="Write your message" >
            </EditText>
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/tableLayout2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >

            <Button
                android:id="@+id/btnAddFilesMessage"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#FFCCCC"
                android:text=" btn_add_files" />

            <View
                android:layout_width="match_parent"
                android:layout_height="60dp"
                android:background="#FFFF66" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/panelMessage2"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/btnSendMessage"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:layout_weight="0.58"
                android:background="#FFCCCC"
                android:text="Send" />

            <Button
                android:id="@+id/btnCancelNewMessage"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_marginLeft="10dp"
                android:layout_weight="0.42"
                android:background="#FFCCCC"
                android:text="Cancel" />
        </LinearLayout>
    </LinearLayout>

</ScrollView>

【讨论】:

    【解决方案2】:

    这可能有效,在清单文件中设置您的活动:

    android:windowSoftInputMode="adjustNothing"
    

    【讨论】:

    • 如果我使用 Fragments 会怎样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 2011-02-20
    • 1970-01-01
    相关资源
    最近更新 更多