繁体   English   中英

如何对齐此textView垂直居中?

[英]How to align this textView to center vertically?

好的,所以我有这个问题: 在此处输入图片说明

我一直在生气,因为我已经尝试寻找此问题的答案了大约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>

有任何想法吗?

TextView.setGravity(...) TextView的边界内设置文本的重力。 由于有问题的TextView的垂直高度为wrap_content ,因此视图的边界始终将始终为内容的高度。

如果将TextView的高度设置为match_parent ,并保持重力设置不变,则TextView的文本应在其父布局中垂直居中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM