2013-07-05 67 views
1

我嘗試添加CENTER_VERTICAL到的EditText:加入重力的EditText編程

((EditText)childView).setGravity(((EditText)childView).getGravity() | Gravity.CENTER_VERTICAL); 

我需要地址(但不能更改!)查看的任何其他當前的重力。

實施例,已經的EditText有重力LEFT。我嘗試

((EditText)childView).setGravity(Gravity.CENTER_VERTICAL); 

但新的引力是殺死左引力。

什麼是增加新的重力最好的方法?

+0

您無法添加重力,而只能設置一個 – R9J

+0

您使用EditText的哪個佈局? – R4chi7

+0

我使用父級TableLayout。我試着代碼(見下文),但沒有結果 –

回答

0

您可以通過在PARAMS設置它嘗試重力

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 
params.gravity = Gravity.CENTER_VERTICAL; 

((EditText)childView).setLayoutParams(params); 
+0

我試試這個。 'TableRow.LayoutParams.WRAP_CONTENT';'TableRow.LayoutParams.WRAP_CONTENT';'TableRow.LayoutParams.WRAP_CONTENT';'TableRow.LayoutParams.WRAP_CONTENT'; layoutParams.gravity = layoutParams.gravity | Gravity.CENTER_VERTICAL; ((EditText)childView).setLayoutParams(layoutParams); 」。但是這個代碼破壞了以前的嚴重性。 –

5

嘗試:

((EditText)childView).setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); 

您必須知道初始重力設置。

0

當以編程方式創建的EditText,你必須在第一組setKeyListener(TextKeyListener.getInstance());

否則你的觀點總是以Gravity.TOP對齊。

我不知道真正的原因,但你specifiy任何其他參數的EditText之前,你必須設置setKeyListener(TextKeyListener.getInstance());

更正:它只有在您通過擴展EditText和使用XML定義小部件來創建自定義小部件時纔有用。僅在Android 5.0.1上測試