在TextView中显示多行或者单行文本的时候,有时单行需要居中显示,而多行的时候需要段落显示在textview
中,可以通过textview.getLineCount();
获取到行数,可是在视图完全未绘制完时此值都为0,解决如下:
textview.setText("我是中国人***我是中国人。");//如果需要设置段落首空两个格时就需要先在下面代码之前先给textview设置一次内容;如果不需要,则此处设置一次内容就可以了,下面判断行数后只需再设置Gravity就可以了;
ViewTreeObserver treeObserver = textview.getViewTressObserver();
treeObserver .addOnGlobalLayoutListener(new OnGlobalLayoutListener(){
@Override
public void onGlobalLayout(){
ViewTreeObserver observer = textview.getViewTreeObserver();
observer.removeGlbalOnLayoutListener(this);//这里防止重复调用;需移除;
//这里获取textview的内容所占行数;
int line = textview.getLineCount();
if(line == 1){
//设置居中,可以在这里设置段落,
textview.setGravity(Gravity.CENTRY);
textview.setText("我是中国人");//单行,居中显示;
}else{
//可以在这里设置段落,重新在设置一下textview中的内容;
textview.setGravity(Gravity.START);
textview.setText("\t\t"+"我是中国人***我是中国人。");//多行,并会在段首空出两个空来;
}
}
});