TextView中的gravity属性不起作用

3

我编写了以下函数来创建文本视图。但有些文本无法完全显示,所以我将重力设置为center_horizontal | center_vertical,但它并不起作用。在DATE IN和DATE OUT中的文本没有完全显示。因此,我希望将所有文本设置为垂直居中和水平居中。

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


展示你的布局 XML?可能是另一个视图覆盖了这个文本视图。 - ArtKorchagin
我们能把文本往上移一点吗? - Lalit Jadiya
您的TextView尺寸似乎是固定的,而且不够高以显示整个文本。您可以考虑在所有TextView单元格中将顶部和底部填充设置为零。 - BladeCoder
1个回答

2

你的TextView高度设置为WRAP_CONTENT,所以它的内部Gravity对它的垂直定位没有影响(因为没有额外的边界来定位自己)。

如果你想让它垂直居中对齐,你需要将TextView的父布局gravity设置为CENTER_VERTICAL或将TextView的高度设置为MATCH_PARENT

以上两种方法都能达到你想要的效果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接