Отображение текста с прокруткой в Android

#android #android-widget #android-gui

#Android #android-виджет #android-графический интерфейс

Вопрос:

Здесь новичок в Android. Я знаю, что могу использовать TextView для прокрутки текстового отображения, но мой вопрос немного другой.

Я хочу показать пошаговую информацию о ходах в игре в окне просмотра. Это должно быть что-то похожее на текст с прокруткой, который вы видите в большинстве игр в покер. Требования таковы, что вы должны иметь возможность прокручивать его, чтобы видеть все игровые ходы. Я рисую весь вид с помощью draw (), и поэтому мне было интересно, как включить TextView там. Могу ли я добавить его в представление и самостоятельно разместить в коде? Из того, что я вижу, кажется, что я должен добавить TextView через XML для действия. Есть ли другой способ обойти это или, может быть, есть другой виджет, который я могу использовать для решения своей проблемы?

Спасибо,

P

Ответ №1:

Вы могли бы попробовать использовать FrameLayout и наложить TextView поверх вашего пользовательского нарисованного вида. Может быть сложно точно расположить TextView. В качестве альтернативы вы могли бы расширить ViewGroup и управлять макетом представления так, как вы хотите.

Комментарии:

1. Если я использую ViewGroup, TextView и фактический макет игры отображаются в двух разных представлениях, которые мне пришлось бы правильно размещать и передавать информацию между представлениями. Мне нужно будет попробовать и посмотреть, выглядит ли все приложение как один экран или нет, но действительно ли нет другого способа добавить виджет на экран в том же виде? Есть ли где-нибудь пример наложения TextView поверх моего представления? Почему вы сказали, что может быть сложно точно расположить его?

2. Технически ViewGroup — это представление (если вы посмотрите назад в иерархии классов, ViewGroup расширяет представление). Вы можете использовать onDraw ViewGroup для создания вашего основного рисунка, а затем с помощью метода onLayout расположить TextView там, где вы хотите. Несмотря на то, что два вида в макете разделены, к ним все равно можно легко получить доступ в одном и том же действии. Сложность с наложением FrameLayout заключается в том, как точно расположить TextView. Я не фанат использования AbsoluteLayout (личные предпочтения)