EditText缩小ScrollView中的onTouchListener

时间:2013-12-05 13:10:13

标签: android android-layout scrollview android-edittext

我的布局非常复杂。父 - ScrollView。然后是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"中。请告知如何正确组织它。

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

android:windowSoftInputMode="adjustNothing"