-1

The view does move up when clicking in the EditText. But it doesn't move up enough. It should move up to someId, below someId the button should be displayed and below that the keyboard should be shown. Why doesn't this work?

Androidmanifest:

<activity android:name=".MainActivity" android:windowSoftInputMode="adjustResize">

activity_main:

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

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <TextView
                android:layout_width="match_parent"
                android:layout_height="400dp"
                android:background="@android:color/holo_red_dark" />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="132dp"
                android:padding="8dp"
                android:background="@android:color/holo_green_dark"/>

            <View
                android:id="@+id/someId"
                android:layout_width="match_parent"
                android:layout_height="20dp" />

        </LinearLayout>

    </ScrollView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">

        <Button
            android:id="@+id/btn_send"
            style="@style/Widget.AppCompat.Button.Borderless"
            android:layout_width="0dp"
            android:layout_height="?attr/actionBarSize"
            android:layout_weight="1"
            android:background="@android:color/white"
            android:clickable="false"
            android:text="Test"
            android:textColor="@color/defaultGreen"
            android:textSize="18sp" />

    </LinearLayout>
</RelativeLayout>
Ratilal Chopda
  • 4,162
  • 4
  • 18
  • 31
Jim Clermonts
  • 1,694
  • 8
  • 39
  • 94

1 Answers1

0

How about scrolling to bottom on view changed

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  final EditText editText = (EditText) findViewById(R.id.editText);
  final ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView);

  editText.getRootView().addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
    @Override
    public void onLayoutChange(View view, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {
      //Scroll to bottom of view
      scrollView.smoothScrollTo(0, editText.getBottom());
    }
  });

}
mksengun
  • 145
  • 1
  • 6
Metin Ilhan
  • 231
  • 7
  • 16