ScrollView嵌套單個(gè)的Edittext問(wèn)題
今天項(xiàng)目中需求是寫(xiě)出一個(gè)很簡(jiǎn)單的edittext輸入框,但要求當(dāng)輸入字?jǐn)?shù)過(guò)長(zhǎng)時(shí)需要上下滑動(dòng)以便查看所有文字,因?yàn)轫?yè)面底部有一個(gè)"確定"的button,但剛開(kāi)始輸入框內(nèi)的問(wèn)題怎么都滑動(dòng)不了,我一開(kāi)始就想到了這是事件傳遞沖突問(wèn)題,但試了很多種方法都不行,最后也是一個(gè)一個(gè)試才解決的,不多說(shuō),貼代碼:
<ScrollView
android:id="@+id/sc_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:minHeight="360dp"
android:scrollbars="none">
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="10dp"
android:layout_marginStart="15dp"
android:layout_marginTop="10dp"
android:background="@null"
android:gravity="top|start"
android:hint="@string/FeedBackViewController_Placeholder"
android:lineSpacingMultiplier="1.0"
android:paddingEnd="10dp"
android:paddingStart="10dp"
android:maxHeight="450dp" //當(dāng)初這個(gè)沒(méi)加,也出現(xiàn)了滑動(dòng)不了的情況
android:textSize="@dimen/font_size16"/>
</ScrollView>
代碼里面需要:
editText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 解決scrollView中嵌套EditText導(dǎo)致不能上下滑動(dòng)的問(wèn)題
v.getParent().requestDisallowInterceptTouchEvent(true);
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_UP:
v.getParent().requestDisallowInterceptTouchEvent(false);
break;
}
return false;
}
});