ScrollView中巢狀EditText滑動問題

2021-08-10 11:01:17 字數 1274 閱讀 2333

在edittext中設定了最大行數,但是內容超果了最大行數限制,這時edittext是可以滑動的。但是如果在edittext巢狀在scrollview中時,會使edittext的滑動事件失效。

解決方法為:

_edittext.setontouchlistener(new view.ontouchlistener()

return false;

}});

if (可編輯) else

如果限制了edittext的最大行數,但是顯示時edittext的行數小於最大行數時,在edittext範圍內拖動時不會觸發scrollview的滑動事件的,導致整個頁面的滑動效果有卡頓不流暢的感覺,因為在edittext的觸控事件中就攔截了上層控制項的滑動事件,所以還需要判斷edittext是否可以滑動來控制是否攔截上層控制項的 滑動事件。

增加了判斷edittext能否上下滑動判斷,修改為:

_edittext.setontouchlistener(new view.ontouchlistener()

switch (event.getaction())

return false;

}});

方法edittext.canscrollvertically(direction)是判斷edittext在垂直方向上能否滑動。引數direction > 0 判斷能否向下滑動,< 0 判斷能否向上滑動。增加了此判斷後,如果edittext是不可以滑動的,scrollview能觸發滑動事件。

根據這個判斷還能延伸出更好的效果,就是當edittext可滑動,使用者向上滑動到頂或者向下滑動到底時,因為這時edittext是獲取了事件監聽所以就算edittext滑動到頂或底時,scrollview也是不可以觸發活動的。當修改為下面的判斷時,當edittext滑動到頂或底時能順利觸發scrollview的滑動事件,使整個頁面更加人性化,更加自然。

_contenttv.setontouchlistener(new view.ontouchlistener() elseelse

}// 向上滑動

if (y - oldy > 0)else}}

break;

case motionevent.action_up:

oldy = 0;

v.getparent().requestdisallowintercepttouchevent(false);

break;

}}

ScrollView巢狀ListView只顯示一行

在開發的過程當中,由於手機螢幕的大小的限制,我們經常需要使用滑動的方式,來顯示更多的內容。在最近的工作中,遇見乙個需求,需要將listview巢狀到scrollview中顯示。於是乎有了如下布局 執行程式,如下結果,無論你如何調整layout width,layout height屬性,listvi...

ScrollView巢狀GridView的情況

開發中用到了需要scrollview巢狀gridview的情況,由於這兩款控制項都自帶滾動條,當他們碰到一起的時候便會出問題,即gridview會顯示不全。解決辦法,自定義乙個gridview控制項 public class mygridview extends gridview public my...

ScrollView巢狀ListView解決方法

在android中,不允許巢狀具有滑動視窗的view,但是有時又需要用到,這時需要重寫listview方法,這時就可以使用了,具體如下 package com.example.wangyi.review import android.content.context import android.ut...