Расположение диалога не отображается как должно - PullRequest
0 голосов
/ 14 февраля 2011

Я использую файл XML для определения диалога, который отображается пользователю.Я хотел бы иметь возможность прокручивать TextViews и EditTexts, но всегда показывать кнопки OK и Cancel.Я не смогу сделать это.Вот мой файл макета:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content">

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content"
            android:orientation="vertical" 
            android:scrollbars="vertical"
            android:scrollbarAlwaysDrawVerticalTrack="true">

            <!-- Group Name -->
            <TextView android:id="@+id/group_name_view"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_marginLeft="20dip" 
                android:layout_marginRight="20dip"
                android:text="@string/group_name_view_text" 
                android:gravity="left"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText android:id="@+id/group_name_edit"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:scrollHorizontally="true" 
                android:autoText="false"
                android:capitalize="none" 
                android:gravity="fill_horizontal"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <!-- Group Description -->
            <TextView android:id="@+id/group_description_view"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:text="@string/group_description_view_text" 
                android:gravity="left"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText android:id="@+id/group_description_edit"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:scrollHorizontally="true" 
                android:autoText="false"
                android:capitalize="none" 
                android:gravity="fill_horizontal"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <!-- Access security -->

            <TextView android:id="@+id/access_security_view"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:text="@string/access_security_view_text" 
                android:gravity="left"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <Spinner android:id="@+id/access_spinner"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:gravity="fill_horizontal" 
                android:drawSelectorOnTop="true"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <!-- Communications security -->
            <TextView android:id="@+id/communcations_security_view"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:text="@string/communcations_security_view_text"
                android:gravity="left" 
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <Spinner android:id="@+id/communications_spinner"
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:gravity="fill_horizontal" 
                android:drawSelectorOnTop="true"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <!-- User -->
            <TextView android:id="@+id/username_view"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:text="@string/username_view_text" 
                android:gravity="left"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText android:id="@+id/username_edit" 
               android:enabled="false"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:scrollHorizontally="true" 
                android:autoText="false"
                android:capitalize="none" 
                android:gravity="fill_horizontal"
                android:textAppearance="?android:attr/textAppearanceMedium" />
            <!-- Password -->
            <TextView android:id="@+id/password_view"
                android:layout_height="wrap_content" 
                android:layout_width="wrap_content"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:text="@string/password_view_text" 
                android:gravity="left"
                android:textAppearance="?android:attr/textAppearanceMedium" />

            <EditText android:id="@+id/password_edit" 
            android:enabled="false"
                android:layout_height="wrap_content" 
                android:layout_width="fill_parent"
                android:layout_marginLeft="20dip" android:layout_marginRight="20dip"
                android:scrollHorizontally="true" 
                android:autoText="false"
                android:capitalize="none" 
                android:gravity="fill_horizontal"
                android:password="true" android:textAppearance="?android:attr/textAppearanceMedium" />

        </LinearLayout>
    </ScrollView>
    <LinearLayout android:layout_height="wrap_content"
        android:layout_width="fill_parent" >
        <Button android:layout_height="wrap_content"
                 android:layout_width="wrap_content" 
                 android:text="@string/ok_text"
                 android:layout_weight="1" android:id="@+id/group_creator_ok_button">
       </Button>
        <Button android:layout_height="wrap_content"
                 android:layout_width="wrap_content" 
                 android:text="@string/cancel_text"
                 android:layout_weight="1" 
                 android:id="@+id/group_creator_cancel_button">
       </Button>
    </LinearLayout>
</LinearLayout>

Я расширил класс Dialog, поэтому при вызове onCreate я вызываю

setContentView(R.layout.my_layout_file);

Это просто показывает ScrollView, но не макет скнопки ... Так что я даже не могу нажимать кнопки.

Ответы [ 3 ]

1 голос
/ 14 февраля 2011

Вы не указали ориентацию для внутреннего LinearLayout. Можете ли вы проверить это?

Если это не сработает, попробуйте использовать с просмотрщиком иерархии.

1 голос
/ 08 марта 2012

только что изменил вашу высоту ScrollView вот так

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="380dp">

и писать не нужно

xmlns:android="http://schemas.android.com/apk/res/android"

для каждого тега, необходимого только для первого тега

1 голос
/ 14 февраля 2011

В вашем просмотре прокрутки используется wrap-контент, поэтому, если содержимое больше экрана, естественно, ваши кнопки не будут отображаться.

Попробуйте использовать android: layout_weight, чтобы назначить «важность» элементам макета.

Альтернатива, на которую вы можете посмотреть, это использовать <merge> -tag.

Тогда вы можете сделать что-то вроде этого:

<merge>
<ScrollView android:layout_height="fill_parent" ... >
 ...
</ScrollView>

<LinearLayout android:layout_height="wrap_content" android:layout_gravity="center|bottom" ...>
  <Button></Button>....
<LinearLayout>

</merge>
...