Прокрутка в ViewSwitcher с двумя TextViews
Я использую свой собственный 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. Это всегда "второй" TextView, который нельзя прокручивать.
Вот как я могу изменить отображаемый TextView:
TextView oldView = (TextView) this.getCurrentView();
TextView newView = (TextView) this.getNextView();
//newView.setMovementMethod(new LinkMovementMethod());
newView.setText(text);
this.showNext();
У меня такое ощущение, что "showNext" не дает сосредоточиться на следующем просмотре. Но я уже пытался использовать "clearFocus" для oldView и "requestFocus" для newView.
Есть идеи?
1 ответ
Я решил проблему, установив MovementMethod для "oldView" в null:
TextView oldView= (TextView) this.getCurrentView();
oldView.setMovementMethod(null);
TextView newView = (TextView) this.getNextView();
newView .setMovementMethod(new LinkMovementMethod());
newView .setText(html);
this.showNext();