如何将这个textView垂直居中?
问题描述:
好了,所以我有这个问题:如何将这个textView垂直居中?
我要疯了,因为我一直在努力,现在找到这个问题的答案为约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
中的文本应该在其父布局中垂直居中显示。
谢谢你的回应。我试过:'textViewMessage.setLayoutParams(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
嗯,你的链接不适合我。 – Yjay
通过在fragment中为linear_layout添加重力参数来修复它:) – user3178137