EditText可滚动键盘激活

时间:2013-10-21 19:51:04

标签: android android-edittext vertical-scrolling

好朋友..

我有一个设计:
enter image description here
当出现键盘时,主Scroll是非常必要的...如果我不这样做,按钮看不到... 问题是当我尝试在键盘激活的情况下移动Edittext时... 我试过这个:

android:scrollbars="vertical"

和此:

setMovementMethod(new ScrollingMovementMethod());

但尚未解决此问题 有人帮帮我吗? grax advance!

2 个答案:

答案 0 :(得分:0)

Check this without using scroll bar:
add permission in menifest file for corresponding activity.
android:windowSoftInputMode="adjustPan"

答案 1 :(得分:0)

请试试这个:

您的布局应与示例类似:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >

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

    <EditText
        android:id="@+id/edittext"
        android:layout_width="200dp"
        android:layout_height="500dp"
        android:text="some long text"

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />
</LinearLayout>

</ScrollView>

并在您的java中尝试this

EditText edit = (EditText)findViewById(R.id.edittext);
edit.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (v.getId() == R.id.edittext) {
            v.getParent().requestDisallowInterceptTouchEvent(true);
            switch (event.getAction() & MotionEvent.ACTION_MASK) {
            case MotionEvent.ACTION_UP:
                v.getParent().requestDisallowInterceptTouchEvent(false);
                break;
            }
        }
        return false;
    }
});

这可能会有所帮助。