Как автоматически прокрутить верхнюю часть поля ввода текста в макете в Android - PullRequest
0 голосов
/ 16 мая 2011

У меня есть 8 текстовых полей редактирования и две кнопки.Для этого я загружаю моментальный снимок моего приложения enter image description here

В каждом из текстовых полей редактирования я устанавливаю KEYBOARD_12KEY для типа ввода.если я нажимаю на любое поле редактирования, то оно появляется как enter image description here

, но если я нажимаю на поле редактирования, соответствующее G, тогда оно появляется как enter image description here

верхняя часть окна редактирования прокручивает верхнюю сторонуно поле редактирования, соответствующее G, покрытое кнопками ... но я хочу, чтобы, если я нажму, то все окна редактирования прокручивали верхнюю сторону, ни одно поле редактирования не оставляло кнопки внизу.как: - enter image description here

Может кто-нибудь сказать мне, как я могу это сделать.

это мой файл XML в RelativeLayout -

<ScrollView android:layout_width="fill_parent" android:layout_marginBottom="30dip"
    android:layout_height="wrap_content" >
    <TableLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:scrollbars="vertical">
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="A"/>
            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText01"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="B"/>
            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText02"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="C"/>
            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText03"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="D"/>
            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText04"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="E"/>
            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText05"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1"
            android:baselineAligned="true">
            <TextView android:layout_height="wrap_content"
                android:layout_weight="1" android:textSize="20dip" android:minWidth="100dip"
                android:layout_gravity="center_vertical" android:text="F"/>

            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText06"></EditText>
        </TableRow>

        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:layout_weight="1" android:textSize="20dip" android:minWidth="100dip"
                android:layout_gravity="center_vertical" android:text="G"/>
            <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
                android:id="@+id/EditText07"></EditText>
        </TableRow>
        <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
            android:padding="5dip" android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
            <TextView android:layout_height="wrap_content"
                android:layout_weight="1" android:textSize="20dip" android:minWidth="200dip"
                android:layout_gravity="center_vertical" android:text="H"/>
            <EditText android:layout_height="40dip" android:inputType="numberDecimal"
                android:layout_weight="1"
                android:layout_width="wrap_content" android:id="@+id/EditText08"></EditText>
        </TableRow>
    </TableLayout>
</ScrollView>
<TableLayout android:id="@+id/btnsLL" android:orientation="horizontal"
    android:layout_height="50dip" android:gravity="center" 
    android:layout_alignParentBottom="true" android:layout_below="@+id/configParamsLL"
    android:layout_width="fill_parent">
    <TableRow>
        <Button android:id="@+id/BtnResetCfg" android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" android:layout_weight="1"
            android:layout_width="2dip" android:layout_marginRight="50dip" android:text="Reset" android:scrollbarAlwaysDrawHorizontalTrack="true"></Button>
        <Button android:id="@+id/BtnSaveCfg" android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" android:layout_weight="1"
            android:layout_width="2dip" android:layout_marginLeft="50dip" android:text="Save"></Button>
    </TableRow>
</TableLayout>

Спасибо.

Ответы [ 2 ]

0 голосов
/ 16 мая 2011

добавьте эту строку в свой список и отметьте ...

<activity android:name=".activity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" android:windowSoftInputMode="adjustResize"></activity>
0 голосов
/ 16 мая 2011

я бы посоветовал установить макет с кнопками на

android:layout_alignParentBottom="true"

и указать макету с boxex быть locatet

android:layout_above="@id/ButtonsLayout"

, но обратите внимание на макет с помощью кнопокдолжны быть объявлены ВЫШЕ макет с текстовыми полями.

Теперь кнопки всегда будут отображаться с текстом редактирования, а макет с элементами управления текстом редактирования (ScrollView) будет фокусироваться на выбранном окне редактирования

edit:

Как я уже сказал, TableLayout с кнопками должен быть поверх Scrollview, но с alignParentBottom (без LayoutBelow) и Scrollview должен иметь тег LayoutAbove:

<TableLayout android:id="@+id/btnsLL" 
    android:orientation="horizontal"
    android:layout_height="50dip" android:gravity="center" 
    android:layout_alignParentBottom="true" 
    android:layout_width="fill_parent">
    <TableRow>
        <Button android:id="@+id/BtnResetCfg" android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" android:layout_weight="1"
            android:layout_width="2dip" 
            android:layout_marginRight="50dip" 
            android:text="Reset"
            android:scrollbarAlwaysDrawHorizontalTrack="true">
        </Button>
        <Button 
            android:id="@+id/BtnSaveCfg" 
            android:layout_alignParentBottom="true"
            android:layout_height="wrap_content" 
            android:layout_weight="1"
            android:layout_width="2dip" 
            android:layout_marginLeft="50dip" 
            android:text="Save">
       </Button>
    </TableRow>
</TableLayout>
<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_marginBottom="30dip"
    android:layout_height="wrap_content"
    android:layout_above="@id/btnsLL">
    <TableLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        android:scrollbars="vertical">
        <TableRow 
            android:layout_height="wrap_content" 
            android:id="@+id/tableRow1"
            android:padding="5dip" 
            android:layout_alignParentLeft="true"
            android:layout_width="fill_parent" android:layout_weight="1">
        <TextView 
            android:layout_height="wrap_content"
            android:textSize="20dip" 
            android:minWidth="100dip" 
            android:layout_weight="1" 
            android:layout_gravity="center_vertical" 
            android:text="A"/>
        <EditText 
            android:layout_height="40dip" 
            android:layout_weight="1" 
            android:layout_width="wrap_content"
            android:id="@+id/EditText01">
        </EditText>
    </TableRow>
    <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
        android:padding="5dip" android:layout_alignParentLeft="true"
        android:layout_width="fill_parent" android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="B"/>
        <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
            android:id="@+id/EditText02"></EditText>
    </TableRow>
    <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
        android:padding="5dip" android:layout_alignParentLeft="true"
        android:layout_width="fill_parent" android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="C"/>
        <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
            android:id="@+id/EditText03"></EditText>
    </TableRow>
    <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
        android:padding="5dip" android:layout_alignParentLeft="true"
        android:layout_width="fill_parent" android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="D"/>
        <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
            android:id="@+id/EditText04"></EditText>
    </TableRow>
    <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
        android:padding="5dip" android:layout_alignParentLeft="true"
        android:layout_width="fill_parent" android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:textSize="20dip" android:minWidth="100dip" android:layout_weight="1" android:layout_gravity="center_vertical" android:text="E"/>
        <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
            android:id="@+id/EditText05"></EditText>
    </TableRow>
    <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
        android:padding="5dip" android:layout_alignParentLeft="true"
        android:layout_width="fill_parent" android:layout_weight="1"
        android:baselineAligned="true">
        <TextView android:layout_height="wrap_content"
            android:layout_weight="1" android:textSize="20dip" android:minWidth="100dip"
            android:layout_gravity="center_vertical" android:text="F"/>

        <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
            android:id="@+id/EditText06"></EditText>
    </TableRow>
    <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
        android:padding="5dip" android:layout_alignParentLeft="true"
        android:layout_width="fill_parent" android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:layout_weight="1" android:textSize="20dip" android:minWidth="100dip"
            android:layout_gravity="center_vertical" android:text="G"/>
        <EditText android:layout_height="40dip" android:layout_weight="1" android:layout_width="wrap_content"
            android:id="@+id/EditText07"></EditText>
    </TableRow>
         <TableRow android:layout_height="wrap_content" android:id="@+id/tableRow1"
             android:padding="5dip" android:layout_alignParentLeft="true"
             android:layout_width="fill_parent" android:layout_weight="1">
        <TextView android:layout_height="wrap_content"
            android:layout_weight="1" android:textSize="20dip" android:minWidth="200dip"
            android:layout_gravity="center_vertical" android:text="H"/>
        <EditText android:layout_height="40dip" android:inputType="numberDecimal"
            android:layout_weight="1"
            android:layout_width="wrap_content" android:id="@+id/EditText08"></EditText>
        </TableRow>
    </TableLayout>
</ScrollView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...