2014-01-30 3 views
0

좋아요,이 문제는 다음과 같습니다. enter image description here이 텍스트를 정렬하는 방법 세로로 가운데에 맞 춥니 다?

저는 약 3 시간 동안이 문제에 대한 답을 찾으려고 노력하고 있습니다. 어쨌든, 세로로 가운데 맞추기 위해 textView를 그림과 같이 정렬하고 싶습니다. 나는이 textViews를 프로그래밍 방식으로 만들었습니다. (이유는 묻지 않아도됩니다.) 코드 : 여기

private View formTextViewUnits(String units) { 
    TextView textViewUnits = new TextView(getActivity()); 
    textViewUnits.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); 
    textViewUnits.setText(units); 
    textViewUnits.setGravity(Gravity.LEFT | Gravity.CENTER_VERTICAL); 
    textViewUnits.setTextColor(Color.parseColor("#e9e9e9")); 
    textViewUnits.setTextSize(TypedValue.COMPLEX_UNIT_DIP, getResources().getDimension(R.dimen.main_stripe_small_text)); 

    return textViewUnits; 
} 

private View formTextViewAmount(Float amount) { 
    TextView textViewAmount = new TextView(getActivity()); 
    textViewAmount.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
    textViewAmount.setText(amount.toString()); 
    textViewAmount.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL); 
    textViewAmount.setTextColor(Color.parseColor("#3ebce6")); 
    textViewAmount.setTextSize(TypedValue.COMPLEX_UNIT_DIP, getResources().getDimension(R.dimen.main_stripe_big_text)); 

    return textViewAmount; 
} 

//THIS IS THE FAULTY TEXTVIEW 
private View formTextViewMessage(String message) { 
    TextView textViewMessage = new TextView(getActivity()); 
    textViewMessage.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)); 
    textViewMessage.setText(message); 
    textViewMessage.setGravity(Gravity.CENTER_VERTICAL); 
    textViewMessage.setTextColor(Color.parseColor("#e9e9e9")); 
    textViewMessage.setTextSize(TypedValue.COMPLEX_UNIT_DIP, getResources().getDimension(R.dimen.main_stripe_small_text)); 

    return textViewMessage; 
} 

그리고 그것을 위해 (TableLayout을 사용) 내 조각 테이블 행입니다 :

<TableRow 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:paddingTop="@dimen/main_stripe_padding_top" 
    android:paddingBottom="@dimen/main_stripe_padding_bottom" 
    android:layout_marginBottom="@dimen/main_stripe_margin_bottom" 
    android:gravity="center_vertical" 
    android:layout_gravity="center_vertical" 
    android:background="#424242"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     android:layout_span="2" 
     android:gravity="right" 
     android:paddingLeft="@dimen/main_stripe_text_padding_left" 
     android:paddingRight="@dimen/main_stripe_text_padding_right" 
     android:orientation="horizontal" 
     android:id="@+id/linearLayoutStripe"> 
    </LinearLayout> 

    </TableRow> 

어떤 아이디어?

답변

3

TextView.setGravity(...)TextView 범위 내에서 텍스트 의 중력을 설정합니다. 해당 TextView의 세로 높이가 wrap_content이므로 뷰의 경계는 항상 콘텐츠의 높이가됩니다.

TextView의 높이를 match_parent으로 설정하고 중력 설정을 그대로 유지하면 TextView의 텍스트가 상위 레이아웃의 가운데에 수직으로 나타납니다.

+0

답변 해 주셔서 감사합니다. 나는 이것을 시도했다 :'textViewMessage.setLayoutParams (new LinearLayout.LayoutParams (LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); ' 이것은 (https : // dl-web) 무슨 일이 있었는지 (외부 링크는 유감스럽게도). dropbox.com/get/Camera%20Uploads/2014-01-30%2016.09.39.png?_subject_uid=99305133&w=AAAGpTu_QjGqACwiwExyXOMiGEkGl2scSSLDUYrccAartw – user3178137

+0

흠, 링크가 작동하지 않습니다. – Yjay

+0

조각에 linear_layout의 중력 인수를 추가하여이 문제를 해결했습니다. :) – user3178137

관련 문제