edittext innen scrollview, wie Sie einen Bildlauf zu edittext, wenn es den Fokus erhält
haben ein edittext innen scrollview. (und es gibt auch andere Ansichten innerhalb scrollview oben edittext.)
Wenn der Benutzer drückt den edittext, Tastatur immer sichtbar, und der sichtbare Bereich der scrollview immer kleiner. Weil das edittext nicht angezeigt auf dem Bildschirm. (es verschiebt sich nicht die scrollview, so dass Sie text Bearbeiten angezeigt wird.)
Nachdem der Benutzer drückt eine beliebige Taste in der Tastatur, scrollview scrollt edittext immer wieder sichtbar.
wie kann ich die Kraft der scrollview, um so zu scrollen, dass edittext werden sichtbar, bevor der Benutzer drückt auf der Tastatur?
<ScrollView
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="vertical"
android:paddingBottom="0dip"
android:paddingLeft="0dip"
android:paddingRight="0dip"
android:paddingTop="0dip" >
<include
layout="@layout/trade_row_item_3cell" />
<include
android:id="@+id/rowQuantity"
layout="@layout/trade_quantity_selection_row_layout" />
<include
layout="@layout/trade_row_item_3cell" />
<include
layout="@layout/trade_price_selection_et_row_layout" />
<include
layout="@layout/trade_row_item_3cell" />
<include
layout="@layout/trade_row_item_3cell" />
<Button
style="@style/CustomButtonText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_weight="0" />
</LinearLayout>
</ScrollView>
<include
layout="@layout/trade_bottom_view" />
Hier ist das layout(trade_quantity_selection_row_layout) enthält, die den edittext
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:layout_gravity="left"
android:background="@android:drawable/list_selector_background">
<TextView
android:id="@+id/tvLeft"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:singleLine="true"
android:textColor="#000000"
android:paddingLeft="10dip"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"/>
<EditText
android:id="@+id/etRight"
android:paddingLeft="10dip"
android:background="@null"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="number"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"/>
<ImageView
android:id="@+id/ivRight"
android:src="@drawable/proceed"
android:paddingRight="10dip"
android:layout_weight="0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"/>
trade_row_item_3cell layout enthält linearlayout mit edittexts.
- können Sie zeigen Sie Ihren code
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst die x/y-Koordinaten des Edittext mit Blick.getLocationOnScreen (int[] location) ( Nach der Methode zurückgegeben wird, enthält das array die x-und y-Position in dieser Reihenfolge)
ODER
Dieses links können Sie finden die Ansichten Koordinaten - https://stackoverflow.com/a/2761184/28557
Dann
hoffe, das hilft
java-code
xml-code
einfach, dies zu tun:
oder, wenn Sie wollen, dass dies passiert automatisch im Fokus: