Ранее это был макет для моего DialogFragment :
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".InfoDialog"
android:id="@+id/scrollView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<!-- (More Views here) -->
</LinearLayout>
</ScrollView>
Работает нормально. Однако мне нужно сделать textView1 selectable . Но когда я добавляю к нему атрибут android:textIsSelectable="true"
, scrollView немного прокручивается при отображении диалогового окна. (NB. Я могу прокрутить его вверх, но это явно не решение.)
Я пытался добавить android:descendantFocusability="beforeDescendants"
к scrollView , но это не сработало.
Я также пробовал это в моих onCreateDialog()
и onViewCreated()
методах:
ScrollView scrollView = layoutView.findViewById(R.id.scrollView);
scrollView.fullScroll(ScrollView.FOCUS_UP);
scrollView.scrollTo(0, 0);
Но это тоже не сработало - т. Е. scrollView все еще немного прокручивается при отображении диалога.
Есть идеи?
Обновление:
Использование этого до конца моих onCreateDialog()
работ:
ScrollView scrollView = layoutView.findViewById(R.id.scrollView);
scrollView.post(() -> {
scrollView.fullScroll(ScrollView.FOCUS_UP);
});
Однако это не идеальное решение (особенно, как вы можете видеть, как прокрутка выполняется на экране). Есть ли лучшее решение, желательно xml?