2013-10-16 1 views
1

필자는 수평 선형 레이아웃의 텍스트 뷰를 가지고 있으며 텍스트 뷰는 맨 위 정렬되어 있습니다. 나는 그것이 수직으로 정렬되기를 원한다.android에서 스타일의 중력을 설정하는 방법은 무엇입니까?

나는라는 스타일로 설정된 텍스트 뷰를

<style name="arrow"> 
    <item name="android:textSize">30sp</item> 
    <item name="android:textColor">#ffffff</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:gravity">center</item> 
    <item name="android:layout_gravity">center</item> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">wrap_content</item> 
</style> 

자바

  LinearLayout LL = new LinearLayout(this); 
      LL.setOrientation(LinearLayout.HORIZONTAL); 
      LL.setPadding(15, 15, 15, 15); 
      LinearLayout.LayoutParams courseMargin = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); 
      courseMargin.setMargins(5, 5, 5, 5); 
      LL.setLayoutParams(courseMargin); 

          // here I add more things into LL... 

      TextView arrow = new TextView(this); 
      arrow.setText(">"); 
      arrow.setTextAppearance(this, R.style.arrow); 
      LL.addView(arrow); 

그러나이 여전히 수직으로 정렬하고 있지 않습니다 ...

사람이 알고 있나요 "화살표" 여기서 뭐하는거야?

감사

+0

텍스트 뷰가 포함 된 레이아웃 xml 파일에 코드를 게시하십시오. – FoamyGuy

+0

자바 코드를 사용하여 만듭니다. 나는 그것을 위에 게시했다. – omega

답변

2

JavaDoc에서 :

는 지정된 TextAppearance 자원에서 텍스트의 색상, 크기, 스타일, 힌트 색상 및 강조 표시 색상을 설정합니다.

위치 또는 중력에 관한 정보는 없습니다. 나는 그것이 당신의 중력이 아무런 효과가 없다고 생각할 것입니다. 이 같은

시도가 : 당신의 TextView은 폭과 높이 WRAP_CONTENT 때문에

//for android:gravity 
arrow.setGravity(Gravity.CENTER); 

//for android:layout_gravity 
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.gravity=Gravity.CENTER; 
arrow.setLayoutParams(params); 

android:gravity 어떤 영향을하지 않을, 말했다되고있다. 따라서 실제로는 android:layout_gravity 코드 조각 만 있으면됩니다.

0

당신은 또한 당신의 텍스트 뷰에 SetGravity를 사용하여 시도 할 수 있습니다. setTextAppearance() 상태에 대한 setGravity

관련 문제