单击EditText时,布局不会向上移动

时间:2017-11-13 13:51:09

标签: android android-scrollview

单击EditText时,视图会向上移动。但它并没有足够的进展。它应向上移动someId,低于someId应显示按钮,低于keyboard应显示。为什么这不起作用?

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>

1 个答案:

答案 0 :(得分:0)

如何在视图上滚动到底部更改

@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());
    }
  });

}