Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在android XML中正确显示多行文本_Android_Xml_Textfield - Fatal编程技术网

如何在android XML中正确显示多行文本

如何在android XML中正确显示多行文本,android,xml,textfield,Android,Xml,Textfield,我有一个对话框活动,其中包括一个多行文本字段和两个按钮。 问题在于,当多行文本字段中的句子长度超过可用空间的宽度并断开到下一行时,或者当我按enter键转到下一行时: 它改变了它下面按钮的位置 它应该是这样的: 但在添加一些新行之后,它看起来是这样的: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"

我有一个对话框活动,其中包括一个多行文本字段和两个按钮。
问题在于,当多行文本字段中的句子长度超过可用空间的宽度并断开到下一行时,或者当我按enter键转到下一行时:
它改变了它下面按钮的位置

它应该是这样的:

但在添加一些新行之后,它看起来是这样的:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

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

        <EditText
            android:id="@+id/noteText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:gravity="right"
            android:hint="متن خود را تایپ کنید"
            android:inputType="textMultiLine"
            android:padding="5dp" >

            <requestFocus />
        </EditText>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="100"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/note_clear"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:text="حذف" />

            <Button
                android:id="@+id/note_save"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:text="ذخیره" />
        </LinearLayout>
    </LinearLayout>

</ScrollView>

查看两个按钮的位置及其下方创建的空间。
我怎样才能解决这个问题

以下是我正在使用的XML代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<EditText
    android:id="@+id/noteText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:ems="10"
    android:gravity="right"
    android:hint="متن خود را تایپ کنید"
    android:inputType="textMultiLine"
    android:padding="5dp" >

    <requestFocus />
</EditText>

<LinearLayout
    style="?android:attr/buttonBarStyle"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:weightSum="100" >

    <Button
        android:id="@+id/note_clear"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="50"
        android:text="حذف" />

    <Button
        android:id="@+id/note_save"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="50"
        android:text="ذخیره" />
</LinearLayout>


首先,在最后一个线性布局中设置:

android:orientation="horizontal" 
将此按钮放在两个按钮中:

android:layout_width="0dp"
并创建ScrollView的根布局&将上面的所有代码放在ScrollView中。 因此,您的xml将如下所示:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

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

        <EditText
            android:id="@+id/noteText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:gravity="right"
            android:hint="متن خود را تایپ کنید"
            android:inputType="textMultiLine"
            android:padding="5dp" >

            <requestFocus />
        </EditText>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:weightSum="100"
            android:orientation="horizontal" >

            <Button
                android:id="@+id/note_clear"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:text="حذف" />

            <Button
                android:id="@+id/note_save"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="50"
                android:text="ذخیره" />
        </LinearLayout>
    </LinearLayout>

</ScrollView>

您的EditText具有定义为包装内容的高度。这意味着它需要内容的大小,文本的大小。最初分配的空间仅用于一行,因此一旦您进入第二行,它将开始分配更多空间。如果不是设计问题,您可以为它分配整个屏幕

<EditText
   android:id="@+id/noteText"
   android:layout_width="fill_parent"
   android:layout_height="match_parent"
   android:ems="10"
   android:gravity="right"
   android:hint="متن خود را تایپ کنید"
   android:inputType="textMultiLine"
   android:padding="5dp" >

   <requestFocus />
</EditText>
稍后编辑: 为了占据所有可能的空间且不影响按钮,请执行以下操作:

android:layout_height="0dp"
android:layout_weight="1"
提问者最后编辑:正确答案是:

<EditText
    android:id="@+id/noteText"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:ems="10"
    android:gravity="right"
    android:hint="متن خود را تایپ کنید"
    android:inputType="textMultiLine"
    android:padding="5dp" >

    <requestFocus />
</EditText>


尝试使用like
40dp
代替
wrap\u内容
尝试使用相对布局而不是线性布局,并删除weights@Rat-你能举个例子吗。我试过相对布局。但是按钮的位置与文本字段无关。你得到解决方案了吗?是的。我使用了这里提出的一些观点,最终达到了我想要的效果。我按照你的建议做了。这没什么区别。问题仍然存在。然后您可以在根布局中选择相对布局。并给出线性布局:alignparentBottom=true;这似乎奏效了。但它把我的按钮推到了看不见的地方。知道如何解决这个问题吗?我已经编辑了我的回复,并添加了一个解决方案。请参阅我文章的最后一部分。@azeratiti我只在可编辑文本元素中添加了android:layout\u weight=“1”。我使用了android:layout\u height=“wrap\u content”,所以它终于起作用了。请更新您的答案,以便我可以接受。@Azertii,OP批准了编辑,您可能想删除它或只是用他的想法替换您的代码,因为它们几乎相同。