как получить кнопку Сохранить и Отменить как в Контактах? - PullRequest
0 голосов
/ 24 января 2012

Если вы редактируете в Контактах,

  • кнопка Сохранить и Отменить всегда остается сверху и располагается над виртуальной клавиатурой.
  • элементы формы можно прокручивать

Я хочу добиться того же поведения.У меня очень длинная форма для ввода, и я хочу, чтобы пользователь в любое время сохранял / отменял.

Пожалуйста, помогите.

Ответы [ 3 ]

4 голосов
/ 24 января 2012

вы можете сделать это, добавив нижний колонтитул в макет. Пример:

http://blog.maxaller.name/2010/05/attaching-a-sticky-headerfooter-to-an-android-listview/

Я достигаю того же, используя этот макет:

    <?xml version="1.0" encoding="utf-8"?>


    <LinearLayout android:id="@+id/linearLayout1"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical" android:background="#ffffff">
        <RelativeLayout 
            android:layout_width="fill_parent" android:layout_height="50dp">
            <Button "></Button>
        </RelativeLayout>

        <ScrollView android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:layout_weight="1">
            <LinearLayout android:id="@+id/linearLayout1"
                android:layout_width="fill_parent" android:layout_height="wrap_content"
                android:orientation="vertical" android:background="#ffffff">
                 <RelativeLayout android:gravity="bottom"
                    android:paddingTop="40dp" android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_alignParentBottom="true"
                    android:layout_alignParentLeft="true" android:background="#ffffff"
                    android:paddingBottom="55dp">

                    <Button ></Button>

                    <Button ></Button>

                    <Button></Button>


                    <Button></Button>


                </RelativeLayout>
            </LinearLayout>

        </ScrollView>
<!--for bottom bar -->
        <RelativeLayout android:layout_height="50dp"
            android:gravity="center" android:layout_width="match_parent"
            android:id="@+id/linearLayout2" android:background="#ffffff">
            <Button ></Button>
            <Button ></Button>
            <Button ></Button>
        </RelativeLayout>

</LinearLayout>
0 голосов
/ 24 января 2012

попробуйте ниже код, что вам нужно, это основной макет внутри этого

1) scrollview, в представлении прокрутки вы можете добавить макет с множеством представлений.

2) другой макет с 2 кнопками внутри для сохранения и отмены. и добавьте стиль как панель кнопок. не забудьте добавить вес = 1 в scrollview.

попробуйте ниже макета, вы получите то, что вы хотите.

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

 <ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:scrollbars="horizontal|vertical" >


</ScrollView>

// в приведенном выше scrollview добавьте ваш макет с другими видами.

// ниже Layou для панели кнопок, как вы хотите

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
style="@android:style/ButtonBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal" >

<Button
    android:id="@+id/browseAddBtn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_weight="1"
    android:text="Add" />

<Button
    android:id="@+id/browseViewBtn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_weight="1"
    android:text="Back" />

<Button
    android:id="@+id/browseReturnBtn"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="Save" />
 </LinearLayout>
0 голосов
/ 24 января 2012

каждая вещь в linearLayout будет помещаться над клавиатурой, поэтому дизайн-макет будет выглядеть так:

<LinearLayout weightSum="X">

   <ScrollView ayout_weight="y" >
     ....
     .....
   </ScrollView>

<Layout layout_wieght="z">
       <btn save />         <btn cancel />
</layout>
<linearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...