framelayout edittext未按预期扩展

时间:2015-09-16 07:54:25

标签: android layout android-edittext

我在编辑文本时遇到问题,因为我输入时没有扩展。 我希望它最多显示4行,但是当我单击exittext键入内容时,它会缩小,甚至不会完全显示一行。

使用的代码是。

<LinearLayout 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"
    tools:context=".MainActivity"
    android:orientation="vertical">


    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Comments"
        android:id="@+id/textView2"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.28"
        android:background="#000000"
        android:maxLines="1"
        android:paddingEnd="20dp"
        android:textColor="#ffffff" />

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

        <FrameLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="11">

            <ListView
                android:id="@+id/list2"
                android:drawSelectorOnTop="false"
                android:layout_height="match_parent"
                android:layout_width="match_parent"
                android:footerDividersEnabled="true">


            </ListView>



        </FrameLayout>


        <FrameLayout
            android:layout_height="0dp"
            android:layout_width="match_parent"
            android:layout_weight="1">

            <LinearLayout
                android:layout_height="match_parent"
                android:layout_width="match_parent"
                android:id="@+id/linearLayout">



                <EditText
                    android:id="@+id/enter_message"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:scrollbars="vertical"
                    android:fadeScrollbars="false"
                    android:layout_weight="1"
                    android:inputType="textMultiLine"
                    android:maxLines="4"
                    android:minLines="1"
                    android:textColor="@android:color/black"
                     />

                <Button
                    android:id="@+id/send_button"
                    android:layout_width="45dp"
                    android:layout_height="30dp"
                    android:onClick="sendMessage"/>

            </LinearLayout>

        </FrameLayout>

    </LinearLayout>

</LinearLayout>

屏幕截图显示发生了什么...... edittext screenshot 谢谢..

1 个答案:

答案 0 :(得分:1)

你有两个嵌套在linearlayout中的framelayouts,它们是加权的。第一个嵌套的framelayout的权重为11 比较1.因此,edittext将无法扩展到它以外的framelayout的加权宽度。

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

嵌套框架。

<FrameLayout
    android:layout_height="0dp"
    android:layout_width="match_parent"
    android:layout_weight="11">

<FrameLayout
    android:layout_height="0dp"
    android:layout_width="match_parent"
    android:layout_weight="1">

总父布局分为12个部分。顶部框架有11个,底部有1. 1个不多。没有足够的空间显示所有文本,另外还有一个垂直滚动条。文本将被添加并在您键入时滚动。在如此短的空间内滚动它是不可能的。

我甚至建议不设置底部框架的重量(默认为0),然后尝试将顶部框架设置为3?并增加它,看看什么对你有用。请在再次发表评论之前尝试这一点。