Проблема настройки просмотра Android

1

Я пытаюсь организовать свое представление со следующими виджетами вида -

  • TextView (должен заполнить ширину экрана и иметь определенную высоту)
  • Пользовательский вид Рисование с использованием Draw() (заполните ширину и начните после указанного выше текста и заполните экран)

Я пытаюсь написать настольную игру, и, следовательно, пользовательский вид нарисован.

Моя проблема в том, что лучше всего подходит для этого?

Можно ли использовать TableLayout и иметь эти два представления как по одному столбцу? Я думал, что это будет трюк, но какой-либо макет, который я использую для пользовательского вида, просто не заполняет экран, даже несмотря на то, что заголовок, который я рисую, заполняет экран.

Надеюсь, я смог правильно объяснить себя. Любые указатели приветствуются.

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/root_layout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/tl_question"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:shrinkColumns="1"
            android:stretchColumns="2">

            <TableRow>
                <TextView
                    android:id="@+id/question"
                    android:layout_width="wrap_content"
                    android:textSize="30sp"
                    android:textColor="#ffFFFFFF"   
                    android:layout_gravity="center_vertical"
                    android:paddingBottom="9dip"
                    android:layout_marginLeft="3dip"
                    android:layout_marginRight="2dip"/>
            </TableRow>

            <TableRow>
                <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_gravity="center_vertical" >
                    <com.ac.gui.CustomView
                        android:id="@+id/custom_board"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:keepScreenOn="true" />
                </LinearLayout>
            </TableRow>
        </TableLayout>

</RelativeLayout>
Теги:
android-layout
android-ui

1 ответ

0
Лучший ответ

Попробуйте использовать

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/root_layout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


            <TextView
                android:id="@+id/question"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="30sp"
                android:text="ASDFASDF"
                android:textColor="#ffFFFFFF"   
                android:layout_gravity="center_vertical"
                android:paddingBottom="9dip"
                android:layout_marginLeft="3dip"
                android:layout_marginRight="2dip"/>

           <com.ac.gui.CustomView

            android:layout_below="@+id/question"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />

</RelativeLayout>

Я тестировал другой макет вместо вашего, и он отлично работает. Он также должен работать с вашим.

RelativeLayout позволяет вам позиционировать позиции, ну, относительно друг друга. Вы увидите атрибут "layout_below" в своем пользовательском представлении, где я укажу идентификатор представления, чтобы поместить его.

  • 0
    Спасибо за ответ. Это имеет большой смысл. Я был над этим думать. Что мне делать, если я хочу добавить другое текстовое представление или кнопку под пользовательским представлением? В идеале я не хочу фиксировать высоту пользовательского вида. Поэтому я бы хотел, чтобы оно было относительно высоты текстового представления под ним. Это может быть сделано?
  • 0
    Конечно! То, что вы хотели бы сделать, это поместить TextView над пользовательским представлением в XML. Удостоверьтесь, что дали TextView Id. Затем в вашем CustomView добавьте атрибут android: layout_above = "@ id / whateveryounamedit". Теперь ваш пользовательский вид будет отображаться ниже текстового представления Вопроса и выше нового текстового представления! :) Вы должны поместить TextView перед пользовательским представлением, потому что XML читается встроенным. Таким образом, если вы поместите атрибут layout_above в CustomView с TextView под ним, он не будет знать о ресурсе, на который вы ссылались (возможно, это было исправлено в более поздних плагинах Eclipse)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню