使用两个TextView在ViewSwitcher中滚动

时间:2014-02-09 14:35:26

标签: android textview scroll focus viewswitcher

我正在使用自己的ViewSwitcher。它包含两个具有相同布局设置的TextView。

这是我的布局的一部分:

<MyViewSwitcher
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:id="@+id/textSwitcher"
            android:layout_weight="1"
            android:padding="15dp"
            android:textAlignment="inherit"
            android:clickable="false"
            android:measureAllChildren="true">

            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="@+id/text"
                android:id="@+id/textView"
                android:layout_gravity="center"
                android:linksClickable="true"
                android:textIsSelectable="false"
                android:typeface="normal"
                android:textStyle="normal"
                android:scrollbars = "vertical"
                android:fadeScrollbars="false"
                android:textSize="@dimen/textsize"
                android:clickable="true"
                android:focusable="true"
                android:longClickable="false" />
            <TextView
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:text="@+id/text"
                android:id="@+id/textView2"
                android:layout_gravity="center"
                android:linksClickable="true"
                android:textIsSelectable="false"
                android:typeface="normal"
                android:textStyle="normal"
                android:scrollbars = "vertical"
                android:fadeScrollbars="false"
                android:textSize="@dimen/textsize"
                android:clickable="true"
                android:focusable="true"
                android:longClickable="false" />
        </MyViewSwitcher>

他们只在“android:id”上有所不同。

我的ViewSwitcher到目前为止工作。我实现了启用滚动功能并检测到水平滑动。

但是有一个问题:当我使用“showNext” - ViewSwitcher的方法时,出现的TextView是不可滚动的。如果我滚动并返回上一个TextView,那么滚动。

当“android:fadeScrollbars”设置为false时,两个视图都显示Scrollbars。 它始终是“第二个”TextView,它不可滚动。

以下是我如何更改显示的TextView:

TextView oldView = (TextView) this.getCurrentView();
TextView newView = (TextView) this.getNextView();
//newView.setMovementMethod(new LinkMovementMethod());
newView.setText(text);
this.showNext();

我觉得“showNext”没有把重点放在下一个View上。但我已经尝试在newView上使用“clearFocus”,在newView上使用“requestFocus”。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我通过将“oldView”的MovementMethod设置为null来解决了这个问题:

TextView oldView= (TextView) this.getCurrentView();
oldView.setMovementMethod(null);

TextView newView = (TextView) this.getNextView();
newView .setMovementMethod(new LinkMovementMethod());
newView .setText(html);

this.showNext();