如何在TextSwitcher中对齐文本?

时间:2018-06-08 09:02:40

标签: android

我想在android中证明我的TextSwitcher。但我没有得到任何解决方案。我添加了一个TextSwitcher,如下所示 -

 <TextSwitcher
    android:id="@+id/ts_place"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical"
    android:layout_marginStart="@dimen/left_offset"/>

但是文字显示没有左右对齐,如下所示 -

  斯塔克斯统治着北方,直到在红色背叛罗伯·斯塔克   Roose Bolton的婚礼。从那以后,一直是Boltons的统治者   北方的座位从Dreadfort转移到Winterfell。   Karstark,Manderly,Umber,Reed和Mormont是主要的附庸   那些宣誓效忠北方守望者的房子。

我想让这些文字左右对齐。

2 个答案:

答案 0 :(得分:0)

创建一个ViewFactory并覆盖makeView函数,以便为文本切换器使用自己的自定义视图/ textview。您应该能够在该视图上设置属性。

TextSwitcher exampleTextSwitcher;
exampleTextSwitcher.setFactory(textSwitcherFactory);


private ViewSwitcher.ViewFactory textSwitcherFactory = new ViewSwitcher.ViewFactory()
{
    @Override
    public View makeView()
    {
        LayoutInflater inflater = LayoutInflater.from(context);
        return inflater.inflate(R.layout.view_timer_textview, null);
    }
};

view_timer_textview.xml

<TextView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/test"
    android:includeFontPadding="true"
    android:textAlignment="center"
    android:layout_gravity="center"
    android:lines="1"
    android:ellipsize="end"/>

答案 1 :(得分:0)

您也可以直接通过代码进行操作,例如:

TextSwitcher textSwitcher = findViewById(R.id.your_id_text_switcher);

        textSwitcher.setFactory(new ViewSwitcher.ViewFactory() {
        @Override
        public View makeView() {
            tvSwitcher = new TextView(MainActivity.this);
            tvSwitcher.setTextColor(getResources().getColor(R.color.textColor));
            tvSwitcher.setTextSize(18);
            //edit lines as follows
            tvSwitcher.setTextAlignment(View.TEXT_ALIGNMENT_TEXT_START);
            return tvSwitcher;
        }
    });