我正在使用我自己的 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 正在工作。我实现了启用滚动并且也检测到水平滑动。
但是有一个问题:当我使用ViewSwitcher的“showNext”-Method时,出现的TextView是不可滚动的。如果我滚动并返回到我的上一个 TextView,这个会滚动。
当“android:fadeScrollbars”设置为 false 时,两个视图都显示滚动条。它始终是不可滚动的“第二个”TextView。
以下是我如何更改显示的 TextView:
TextView oldView = (TextView) this.getCurrentView();
TextView newView = (TextView) this.getNextView();
//newView.setMovementMethod(new LinkMovementMethod());
newView.setText(text);
this.showNext();
我感觉“showNext”并没有将焦点放在下一个视图上。但我已经尝试在 oldView 上使用“clearFocus”,在 newView 上使用“requestFocus”。
有任何想法吗?