TextView中的文本重力不起作用

时间:2015-07-31 11:31:36

标签: android textview

我写了下面的函数来创建文本视图。但是有些文本完全不可见所以我得到引力到center_horizo​​ntal | center | vertical但是它没有工作。我的下面的图像是在DATE& OUT DATE完全不可见。所以我想将所有文本设置为居中垂直和居中水平

protected TextView createDefaultTabView(Context context) {
        TextView textView = new TextView(context);
        textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_HORIZONTAL);
        textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP);
        textView.setTypeface(Typeface.DEFAULT_BOLD);
        //textView.setPadding(0,0,0,25);

        textView.setLayoutParams(new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

    [![enter image description here][1]][1]    TypedValue outValue = new TypedValue();
        getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground,
                outValue, true);
        textView.setBackgroundResource(outValue.resourceId);
        textView.setAllCaps(true);

        int padding = (int) (TAB_VIEW_PADDING_DIPS * getResources().getDisplayMetrics().density);
        textView.setPadding(padding, padding, padding, padding + 10);

        return textView;
    }

enter image description here

1 个答案:

答案 0 :(得分:2)

您的TextView's高度设置为WRAP_CONTENT,因此它的内部Gravity对其垂直定位没有影响(因为没有额外的界限来定位)。

如果要将其垂直对齐,则需要将TextView's PARENT引力设置为CENTER_VERTICAL,或将TextView的高度设置为MATCH_PARENT

其中任何一个都会给你你想要的效果。