Java 更改文本视图';重力布局
我在Java 更改文本视图';重力布局,java,android,android-layout,android-listview,textview,Java,Android,Android Layout,Android Listview,Textview,我在列表视图中有一个文本视图。我正在尝试根据相应的文本更改textview的对齐方式。但它不起作用 谢谢 if (stringItem != null) { TextView messageText = (TextView) view.findViewById(R.id.list_item_text_view); if (mine==0) messageText.setGravity(Gravity.RIGHT);
列表视图中有一个文本视图
。我正在尝试根据相应的文本更改textview
的对齐方式。但它不起作用
谢谢
if (stringItem != null) {
TextView messageText = (TextView) view.findViewById(R.id.list_item_text_view);
if (mine==0)
messageText.setGravity(Gravity.RIGHT);
if (mine==1)
messageText.setGravity(Gravity.LEFT);
messageText.setText(stringItem);
}
我的布局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/list_item"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical" >
<TextView
android:id="@+id/list_item_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/self_textview"
android:textSize="20sp" />
</LinearLayout>
将textview宽度设置为与父视图匹配,重力设置视图内部的布局方式,因此,如果将textview的宽度设置为列表视图项目宽度,然后设置textview的重力,它将与实际文本对齐
<?xml version="1.0" encoding="utf-8"?>
我还注意到在线性布局上设置了重力。我不会尝试混合重力和布局,只是坚持一个。您还可以通过设置线性布局的重力而不是文本视图来获得所需的效果我可以通过更改线性布局的布局参数
并更改其重力
,然后将其设置为文本视图
,使其工作
LinearLayout.LayoutParams para=new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT );
para.gravity = Gravity.RIGHT;
messageText.setLayoutParams(para);
将文本视图的重力更改为右侧 你能在logcat中发布结果吗?我没有得到任何错误,但它没有设置对齐。所有的信息都以相同的方式显示。看看varibale“我的”是否已初始化?哦,我想文本的设置是正确的。但我希望整个文本视图从右到左开始,而不是从左到右。那是因为这是在改变布局,而不是重力。这就是事实,这是一个糟糕的做法还是什么?不,一点也不,我只是指出区别,我真的被重力和布局重力弄糊涂了一段时间,它仍然需要一些修补。原始代码使用xml的原因是因为它设置了布局重力,java代码失败的原因是因为它设置了重力。这就是为什么我更新了java代码来更改布局重力。
<TextView
android:id="@+id/list_item_text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/self_textview"
android:textSize="20sp" />
</LinearLayout>
LinearLayout.LayoutParams para=new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT );
para.gravity = Gravity.RIGHT;
messageText.setLayoutParams(para);