改变textView的布局重力

时间:2014-02-12 00:55:23

标签: java android android-layout android-listview textview

我在TextView中有一个ListView。我正在尝试根据相应的文本更改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>

* 编辑:* 我知道如何从xml文件更改它,但如何从代码中更改它?

android:layout_gravity="right"

2 个答案:

答案 0 :(得分:1)

将textview宽度设置为match_parent,Gravity设置视图内部布局的方式,因此如果将textview的宽度设置为列表视图项宽度,然后设置textview的重力,则会将实际文本对齐。

<?xml version="1.0" encoding="utf-8"?>

<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>

我还注意到你在线性布局上设置了重力。我不会尝试混合重力和layout_gravity只是坚持一个。您也可以通过设置线性布局的重力而不是文本视图来获得所需的效果

答案 1 :(得分:0)

我能够通过更改layoutParams的{​​{1}}并更改其linearlayout,然后将其设置为gravity来实现目标。

textview

会将textview的引力更改为右。