ScrollBar在EditText中不起作用

时间:2013-12-31 07:20:41

标签: android android-edittext android-scroll android-scrollbar

希望你们所有人都做得很好。

我的问题是:

我有xml代码如下:

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="@dimen/activity_left_margin"
        android:layout_marginRight="@dimen/activity_right_margin"
        android:orientation="vertical"
        android:paddingBottom="@dimen/activity_bottom_padding"
        android:paddingTop="@dimen/activity_top_padding" >

        <EditText
            android:id="@+id/custDetailsNameEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/name_cust_all_add"
            android:inputType="textPersonName"
            android:textSize="@dimen/common_fontsize" />

        <EditText
            android:id="@+id/custDetailsDescEditText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:hint="@string/description_add_all_cust"
            android:inputType="textMultiLine"
            android:lines="5"
            android:minLines="3"
            android:gravity="top|left"
            android:scrollbars="vertical"
            android:scrollbarStyle="insideInset"
            android:overScrollMode="always"
            android:fadeScrollbars="false"
            android:scrollbarAlwaysDrawVerticalTrack="true"
            android:textSize="@dimen/common_fontsize" />
    </LinearLayout>

</ScrollView>

因为我EditText中有两个</ScrollView>,所以第二个<EditText/>不会滚动内侧。问题是在我滚动时滚动全视图但我想在用户输入超过5行时在第二个EditText中垂直滚动。在那个ScrollBar中显示但不滚动。

我该如何解决这个问题。

您的帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

此代码应该有效.....

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

    findViewById(R.id.parentScrollView).setOnTouchListener(parentListener);

    findViewById(R.id.custDetailsDescEditText).setOnTouchListener(childListener);

}

OnTouchListener parentListener = new OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {
        findViewById(R.id.custDetailsDescEditText).getParent()
                .requestDisallowInterceptTouchEvent(false);
        return false;
    }
};

OnTouchListener childListener = new View.OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {
        v.getParent().requestDisallowInterceptTouchEvent(true);
        return false;
    }
};

答案 1 :(得分:0)

在你的代码中尝试这样的事情

ScrollView scroller = new ScrollView(this);
EditText et=(EditText)findViewById(R.id.yourEdittext);
scroller.addView(et);