我在线性布局中使用编辑文本。但是,我注意到,当我动态设置文本时,文本不会包含到下一行,而是保持写入同一行。
我使用的是singleLine = false,但它没有将文本包装到下一行。
如果,但是,我在xml属性文本中为它提供了一个默认字符串,那么我可以看到文本包装到下一行。
快照:
XML代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:id="@+id/crt_act_main_data_layout"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="5dp"
android:weightSum="1"
android:layout_marginBottom="2dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/crt_act_start_txt"
android:layout_marginLeft="10dp"
android:text="@string/act_start_time"
android:layout_gravity="center|left"
android:gravity="bottom|left"
android:layout_weight="0.6"
android:textColor="@color/black"/>
<EditText
android:id="@+id/crt_act_start_ed"
android:layout_marginLeft="2dp"
android:editable="false"
android:singleLine="false"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_marginBottom="1dp"
android:textIsSelectable="true"
android:background="@drawable/rounded_edittext"
android:layout_weight="0.4"
android:layout_gravity="center|left"
android:gravity="top|left"
android:textSize="@dimen/textsize"
/>
</LinearLayout>
... some more rows here ..
</LinearLayout>
在我做的代码中:
m_stTmEdTxt = (EditText)rootView.findViewById(R.id.crt_act_start_ed);
m_stTmEdTxt.setText(someval);
m_stTmEdTxt.getBackground().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);
答案 0 :(得分:1)
您可以将以下行添加到您的代码
android:inputType="textMultiLine"
android:maxLength="200"
android:maxLines="5"
android:scrollHorizontally="false"
android:scrollbars="vertical"
相应地更改值。
答案 1 :(得分:0)
尝试将输入类型设置为textView
m_stTmEdTxt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_MULTI_LINE);
在XML中试试
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
答案 2 :(得分:0)
只需添加此行XML的Edittext标记 android:inputType =&#34; textMultiLine&#34; 并提供填充。
答案 3 :(得分:0)
在阅读了大约一百万个StackOverflows并尝试使用各种形式的XML之后,我终于找到了答案。
答案是不要用XML来做。没有XML的组合(包括映射到下面的程序代码的确切XML)我尝试使EditText调整大小,如果我以编程方式设置文本。相反,在调用setText()之后以编程方式设置所有内容,如下所示:
myEditText.setText("Really long multiple lines of text should be required to display this entire bit of text. You can test it out if you don't believe me.");
myEditText.setSingleLine(false);
myEditText.setImeOptions(EditorInfo.IME_FLAG_NO_ENTER_ACTION);
//Of particular importance, do not leave out the InputType.TYPE_CLASS_TEXT; it will not work without it!
myEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE);
myEditText.setMaxLines(10);