Android滑动标签 - 标签上的2行文字

时间:2014-12-30 16:39:00

标签: java android android-layout android-studio

我在网上看到了这张图片,我想知道:我的滑动标签项目中的一个标签是否可以有两行文字视图?

dual line tab

Hello标签错误

Hello tab error

DeafultTabView代码

protected TextView createDefaultTabView(Context context) {
    TextView textView = new TextView(context);
    textView.setGravity(Gravity.CENTER);
    textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, TAB_VIEW_TEXT_SIZE_SP);
    textView.setTypeface(Typeface.DEFAULT_BOLD);
    textView.setTextColor(context.getResources().getColor(R.color.black));

    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    textView.setWidth(size.x / 2); // (size.x / number of textviews);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        // If we're running on Honeycomb or newer, then we can use the Theme's
        // selectableItemBackground to ensure that the View has a pressed state
        TypedValue outValue = new TypedValue();
        getContext().getTheme().resolveAttribute(android.R.attr.selectableItemBackground,
                outValue, true);
        textView.setBackgroundResource(outValue.resourceId);
    }

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        // If we're running on ICS or newer, enable all-caps to match the Action Bar tab style
        textView.setAllCaps(true);
    }

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

    return textView;
}

1 个答案:

答案 0 :(得分:2)

TextView方法

返回的createDefaultTabView()中使用此功能
myTextView.setText(Html.fromHtml("Line one <br/>Line two"));

设置这样的文本(通用条件)

private void setCustomText(TextView textView, String[] msg, boolean isSingleLine){
    if(isSingleLine)
        textView.setText(msg[0]);
    else
        textView.setText(TextUtils.join("<br/>", msg));
}