我有多個HorizontalScrollViews裏面的ScrollView。水平滾動根本不流暢。爲了滾動工作,我必須水平滾動。有一個簡單的修復來調整這個?謝謝!Android:HorizontalScrollView裏面滾動查看
回答
如果您正在使用從水平滾動視圖的解決方案可以使用回收站視圖交錯佈局管理器
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.HORIZONTAL);
RecyclerViewAdapter recyclerViewAdapter = newRecyclerViewAdapter(this);
recyclerView.setAdapter(recyclerViewAdapter); //Don't miss to initialize your adapter
對不起,我認爲該網址就夠了? –
@yousefsafwat **否** ...鏈接永遠不會*足夠。您必須在此網站上發佈答案的重要部分。 –
這個想法是把水平列表視圖裏面的垂直列表視圖 –
一般情況下,你不應該使用在Android的嵌套ScrollViews可言,這樣滾動的行爲是不自然了。
您可能想重新考慮您的佈局設計,是否有任何無法通過展開列表實現的設計?
如果你對此有100%的堅持,可以看看下面的解決方案:http://stackoverflow.com/questions/2646028/android-horizontalscrollview-within-scrollview-touch-handling?rq= 1 – Guykun
我試圖實現這種模式:http://www.androidpatterns.com/uap_pattern/scrollable-rows – vladexologija
我找到了解決方案,仍然無法相信這是你必須做的,使這項工作正常!只需添加空白onClickListener到每個項目中HorizontalScrollView:
item.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
});
後這張幻燈片是真的光滑,向上下兩個方向。
如果這種情況下,你可以把'android:clickable =「true」'放在你的列表項中XML,而不是在代碼中。 – ataulm
該類創建一個包含HorizontalScrollView的ScrollView,組合成一個類。您可以使用AddChild()方法將內容放入其中。 dispatchTouchEvent覆蓋保持滾動平滑,因此您可以使用手指的單個幻燈片進行平移。
(我最近使用這種包裝一個編程方式創建的TextView)
class MultiScrollView extends ScrollView
{
public HorizontalScrollView hscroll;
public MultiScrollView (Context context)
{
super(context);
}
public void AddChild(View child)
{
hscroll.addView(child);
}
@Override
public boolean dispatchTouchEvent(MotionEvent event)
{
hscroll.dispatchTouchEvent(event);
onTouchEvent(event);
return true;
}
}
戴維百萬感謝它的魅力。 –
( http://www.dev-smart.com/archives/34)滾動視圖和列表視圖之間的交叉焦點問題的解決方案阻止了焦點到滾動視圖一旦你專注於列表視圖。
從技術角度來看,您應該將以下行添加到HorizontalListView類中的onScroll
函數中。
getParent().requestDisallowInterceptTouchEvent(true);
希望這會有所幫助。
雖然David的答案有效,但它有一個缺點。它將ScrollView的MotionEvent對象直接傳遞給HorizontalScrollView.onTouchEvent(),因此如果HorizontalScrollView或其子級嘗試獲取事件座標,則會得到基於ScrollView的錯誤座標。
我的解決辦法:
public class CustomScrollView extends ScrollView{
/*************skip initialization*************/
@Override
public boolean onInterceptTouchEvent(MotionEvent e){
//returning false means ScrollView is not interested at any events,
//so ScrollView's onTouchEvent() won't be called,
//and all of the events will be passed to ScrollView's child
return false;
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//manually call ScrollView's onTouchEvent(),
//the vertical scrolling happens there.
onTouchEvent(ev);
//dispatch the event,
//ScrollView's child will have every event.
return super.dispatchTouchEvent(ev);
}
}
就環繞HorizontalScrollView這CustomScrollView在你的佈局文件。
- 1. Android:HorizontalScrollView滾動問題
- 2. Android:HorizontalScrollView和圖像包裝
- 3. Android:HorizontalScrollView像Iphone一樣移動
- 4. Swift 3:UIPickerView裏面滾動查看
- 5. Android - TabHost裏面滾動查看
- 6. Android:HorizontalScrollView包裝它的孩子?
- 7. Recycler視圖裏面查看頁面滾動不刷新頁面滾動時
- 8. 自定義視圖裏面HorizontalScrollView不滾動
- 9. HorizontalScrollView裏面的ListView:輕微的垂直滾動停止水平滾動
- 10. Android滾動查看滾動查看
- 11. horizontalscrollview裏面的recyclerview
- 12. Scaling ImageView裏面的HorizontalScrollView
- 13. HorizontalScrollView裏面的ScrollView android
- 14. Android如何滾動HorizontalScrollView滾動另一個parellel HorizontalScrollView
- 15. 如何檢查HorizontalScrollView滾動狀態?
- 16. 使horizontalscrollview自動滾動
- 17. iPhone - 滾動查看裏面的textview和tableview
- 18. UIView裏面的滾動查看縮放問題
- 19. c#UWP Webview裏面滾動查看器只適用於手機
- 20. 兩個ViewPagers裏面滾動查看 - 第二不可見
- 21. 滾動查看不滾動
- 22. 滾動查看不滾動
- 23. 滾動查看不滾動
- 24. 滾動查看不滾動
- 25. 重複滾動HorizontalScrollView
- 26. Android HorizontalScrollView滾動頁
- 27. 滾動horizontalScrollView左右
- 28. Android HorizontalScrollView不滾動
- 29. HorizontalScrollView的限制滾動
- 30. Android HorizontalScrollView禁用滾動
我試圖實現類似的用戶界面。但是,我的滾動視圖不平滑,並在滾動時凍結。你在項目中遇到過類似的問題嗎?謝謝! – gauravsapiens
你有onClickListener()嗎? – vladexologija
是的,HorizontalListView的內部適配器! – gauravsapiens