У меня есть фрагмент кода, активируемый нажатием кнопки:
helpdialog = new BottomSheetDialog(this);
View view = getLayoutInflater().inflate(R.layout.fragment_bottom_layout, null);
helpdialog.setContentView( view );
TextView tv = (TextView) view.findViewById( R.id.splo);
// Text to place in dialog omitted
tv.setText( sp );
helpdialog.show();
И мой макет фрагмента_bottom_layout.xml выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text=""
android:id="@+id/splo"
/>
</LinearLayout>
В большинстве случаев он работает нормально, но бывают случаи, когда к текстовому представлению добавляется текст или отображается очень большой фрагмент текста, и в этом случае верхняя часть текста исчезает или усекается, как FIFO. Как я могу предотвратить это и изменить размер диалога, чтобы вместить весь текст? Я думал об установке высоты нижнего листа как tv.getLineCount () * tv.getLineHeight (), но я не могу найти простой способ применить это к самому диалогу.
РЕДАКТИРОВАТЬ: после дальнейшего расследования я заметил еще одну проблему. Если я открою нижнее диалоговое окно, содержащее длинный фрагмент текста, и прокручиваю его вверх, чтобы верхняя часть диалогового окна уходила за верхнюю часть окна, а когда я прокручиваю назад вниз, пропавший сверху текст пропускается. Это может быть связано с проблемой, с которой я столкнулся выше.