2011-12-12 4 views
0

나는 하나의 편집 텍스트를 프로 그램에 추가하고 있는데, 나는 중력을 설정하고 있지만 반영하지 않는다.왜 내 편집 텍스트가 중력을 취하지 않고 ...?

image

코드 :

EditText bcc = new EditText(getApplicationContext()); 
     LayoutParams para = new LayoutParams(LayoutParams.FILL_PARENT, 45); 
     //bcc.setBackgroundColor(Color.parseColor("#00000000")); 
     bcc.setTextColor(Color.parseColor("#000000")); 
     bcc.setSingleLine(true); 
     para.setMargins(0, 0, 0, 5); // left, top, right, bottom.  
     bcc.setTextSize(15); 
     bcc.setGravity(Gravity.BOTTOM); 
     bcc.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); 
     bcc.setId(100); 
     bcc.setLayoutParams(para); 
+0

왜 코드에 속성이 있습니까? 당신은 XML에서 그것을 할 수 있습니까? – Hades

+0

동적 콘텐츠가 특정 조건에서만 추가되었습니다. – Noby

답변

0

결국이 EditText bcc을보기 그룹에 추가 하시겠습니까? 부모는 뷰 그룹의 유형에 따라 다음을 수행해야합니다 :

있는 LinearLayout :

를 XML을 통해 : 당신은 안드로이드 설정해야합니다 : layout_gravity는 = "center_vertical". 코드를 통해

:

LinearLayout.LayoutParams lp = viewGroup.getLayoutParams(); 
lp.gravity = Gravity.CENTER_VERTICAL; 
viewGroup.setLayoutParams(lp); 

코드는 다른 부모 레이아웃 유형에 따라 다를 수 있습니다.

1

이 중력 텍스트 내부 EditText 누워해야 만하는 방법 bcc.setGravity(Gravity.BOTTOM);마르크.

EditText의 부모가 RelativeLayout 인 경우 RelativeLayout.LayoutParams 안에 규칙을 제공 할 수 있습니다.

+0

parent는 선형 레이아웃입니다. – Noby

1

gravity은 제어 내용 (EditText)을 설정하는 방법을 정의하므로 layout_gravity을 사용해야합니다.

자세한 내용은 this question을 참조하십시오.

1

세트의 중력의 중력. 보기 부모 레이아웃이 경우 프로그램의 EditText를 만들 때 다음 코드를 먼저 설정 setKeyListener 분에서해야, 다음

((LinearLayout) bcc.getParent()).setGravity(Gravity.CENTER_VERTICAL); 
0

같은 것 (TextKeyListener.getInstance());

그렇지 않으면보기가 항상 Gravity.TOP과 정렬됩니다.

실제 이유는 모르겠지만 EditText의 다른 매개 변수를 지정하기 전에 setKeyListener (TextKeyListener.getInstance());

수정 : EditText를 확장하고 위젯을 XML로 정의하여 사용자 정의 위젯을 만드는 경우에만 작동합니다. Android 5.0.1에서만 테스트되었습니다.

관련 문제