首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

TextView设置文字大小后View的高度变化有关问题

2012-04-14 
TextView设置文字大小后View的高度变化问题遇到一个问题是这样的:当TextView显示的字符只有一行时,缩小文

TextView设置文字大小后View的高度变化问题
遇到一个问题是这样的:当TextView显示的字符只有一行时,缩小文字的大小,View的高度不变。为什么会这样呢?我设置的TextView的高度为wrap_content的,为什么View的高度没有同样缩小?如果我想缩小它,该怎么办呢?
当TextView的文字显示为两行时候就不存在这个问题。这时候缩小文字的大小,View的高度也缩小。

为了证实这个问题,我特意写里个Demo如下:

1.字符串资源:

HTML code
<string name="one_line">AB</string>    <string name="two_line">AB\nCD</string>


2.main.xml
HTML code
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <TextView        android:id="@+id/test"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:background="#FFFFFF00"/>        <Button        android:id="@+id/btn_changeSize"        android:text="ChangeSize"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        ></Button>        <Button        android:id="@+id/btn_changeTest"        android:text="ChangeText"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        ></Button></LinearLayout>


3.TestActivity.java

Java code
public class TestActivity extends Activity {        TextView tvTest;    Button btnChangeSize;    Button btnChangeText;    boolean sizeChanged;    boolean textChanged;        /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);                tvTest = (TextView) findViewById(R.id.test);        tvTest.setTextSize(30f);        tvTest.setText(R.string.one_line);        btnChangeSize = (Button) findViewById(R.id.btn_changeSize);        btnChangeSize.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if(sizeChanged){                    sizeChanged = false;                    tvTest.setTextSize(30f);                }else{                    sizeChanged = true;                    tvTest.setTextSize(18f);                }                            }        });                btnChangeText = (Button) findViewById(R.id.btn_changeTest);        btnChangeText.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                if(textChanged){                    textChanged = false;                    tvTest.setText(R.string.one_line);                }else{                    textChanged = true;                    tvTest.setText(R.string.two_line);                }            }        });    }}


求指教!!


[解决办法]
不会啊,只有一行你改变Text的大小也是可以缩小外面Text的高度的,本来就是适高的
[解决办法]
clean下看看
[解决办法]
clean下吧

热点排行
Bad Request.