单击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>
答案 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());
}
});
}