我想知道如何将编辑文本的高度调整为te字体大小。我的意思是,无论我将fontSize更改为5sp还是保留默认值,editText总是相同的高度。当然我可以使用这样的东西:
<EditText
android:id="@+id/msgInput"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:inputType="textMultiLine"
android:textSize="14sp"
android:hint="@string/hintMsgInput">
</EditText>
但如果有超过1行,我也想伸展。我该怎么办?
[编辑]:
好的,我用这种方式解决了它:
msgInput = (EditText) findViewById(R.id.msgInput);
msgInput.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s) {
if (msgInput.getLineCount() > 1)
{
msgInput.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
}
else
{
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
msgInput.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, height));
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
答案 0 :(得分:3)
将编辑文本高度设置为wrap_content
android:layout_height="wrap_content"
答案 1 :(得分:3)
检查
<EditText
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:id="@+id/editText1"
android:textSize="5sp"
android:inputType="textMultiLine"
android:text="hello h r u hello h r u hello h r u hello h r u hello h r u "
></EditText>
答案 2 :(得分:2)
您正在为EditText的高度提供20 dp约束。 您希望textView根据文本大小使用
调整高度android:layout_height="wrap_content"
默认情况下,单行为false。这确保了多行真实。
答案 3 :(得分:0)
如果您想使EditText高度超过一行,您可以将其放入EditText:
android:layout_height =“fill_parent”并设置android:layout_weight =“1”以获得更多空间以在活动中添加更多视图
答案 4 :(得分:0)
你可以使用scrollView,并在ScrollView中添加你的editText,并使用它:
android:inputType="textImeMultiLine"
答案 5 :(得分:0)
您可以添加@style页面名称
<style name="value_big" parent="@android:style/TextAppearance.Medium">
<item name="android:textSize">35sp</item>
<item name="android:textColor">@color/white</item>
<item name="android:textStyle">bold</item>
<item name="android:typeface">sans</item>
<item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
</style>
在您的编辑文本中调用
<EditText
android:id="@+id/msgtext"
android:layout_width="fill_parent"
style="@style/value_big"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_marginRight="10dip"
android:inputType="textMultiLine"
android:layout_height="150dip"
android:gravity="top"
android:padding="5dip">
</EditText>
答案 6 :(得分:-1)
在editText中设置android:focusable =“ false”