2014-07-14 35 views
1

我已經創建了一個動態文本視圖。我想將其重力設置爲right.I已經使用textview.setGravity(Gravity.RIGHT),但它不工作。當我使用它時,文本視圖是如何設置textview的重力?我不想使用setPadding()。設置動態文本視圖的重力

textMore[i]=new TextView(this); 
        textMore[i].setGravity(Gravity.Right); 
        textMore[i].setText("more...."); 

        textMore[i] .setTextColor(Color.BLUE); 
+1

視圖的寬度可能設置爲'wrap_content'設置重心向右 ,所以'TextView'是與其內容一樣寬。您可以將'TextView'的寬度設置爲'match_parent'並仍然使用'Gravity.Right',或者您可以使用'wrap_conten't並使用'LayoutParams'來將'layout_gravity'設置爲 – 0xDEADC0DE

+0

'TextView'是在哪個佈局?基於Layout,爲你的'TextView'創建一個'LayoutParam'併爲其設置'layout_gravity'。 –

+1

@ 0xDEADC0DE-我已經動態添加的線性佈局設置爲包裝內容。所以我改變它以匹配父項,然後嘗試設置重力? –

回答

0

您不能通過setGravity更改TextView的對齊方式,它會更改TextView內容對齊方式。

+0

@ Arash-有什麼方法可以設置它嗎? –

+0

@AnushkaAgarwal:改變它的父引力或爲TextView設置layout_gravity –

0

你可以做

LinearLayout.LayoutParams textParams = (LinearLayout.LayoutParams) textMore[i].getLayoutParams(); 
textParams.gravity = Gravity.RIGHT; 
textMore[i].setLayoutParams(textParams); 

,然後在動態LinearLayout

0

如果你的文本視圖的父RelativeLayout的(更喜歡這樣)

集中添加視圖:alignParentRight

如果文本視圖的父項是LinearLayou牛逼

集:setLayoutGravity(Gravity.Right)

LinearLayout.LayoutParams textParams = (LinearLayout.LayoutParams)textMore[i].getLayoutParams(); 
textParams.gravity = Gravity.RIGHT; 
textMore[i].setLayoutParams(textParams); 

setGravity(Gravity.Right) ==>此屬性將對齊文本您的TextView裏面,而不是對準其父母的觀點。

+0

@ Eu.Dr.-我在第二行收到空指針異常。 –

+1

嘗試找到您的nullPointerException的原因,並點擊它! 我想基本的想法必須清楚,現在它取決於你。 祝你好運 –

+0

@ Eu.Dr .:由於OP是動態創建'TextView',所以不應該使用'getLayoutParams()'創建'LayoutParam',而應該編寫'LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams寬度,高度);'。 –

0

首先設置你的TextView Width屬性,以填補父,那麼你可以,如果你使用的是線性佈局