android: listview inside a scrollView doesn't work?

后端 未结 3 561
生来不讨喜
生来不讨喜 2020-12-21 15:37

I am having a listview inside a scrollview, but the problem is that the scrollview is scrolling but listview is not scrol

相关标签:
3条回答
  • 2020-12-21 16:07

    ListView must have fixed height as below in your XML file

            <ListView android:id="@+id/lv"
                android:listSelector="#0f0"            
                android:layout_width="fill_parent"
                android:layout_height="500px" />
    

    In Java file, write below code after setContentView()

            lv = (ListView)findViewById(R.id.lv);
            lv.setAdapter(your adapter here);  // you have to add your adapter here             
    
            lv.setOnTouchListener(new ListView.OnTouchListener() {
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    if (event.getAction() == MotionEvent.ACTION_MOVE)
                    {
                        lv.scrollBy(0, 1);
                    }
                    return false;
                }
            });
    

    Make these changes to your code and test it. After too many experiments i written this code. It is working 100% fine.

    0 讨论(0)
  • 2020-12-21 16:19

    If you put your ListView/any scrollable View inside the scrollView it will not work properly because when you touch the screen ,main focus of your touch is on parent view(scrollView ) not the child View (ListView).

    0 讨论(0)
  • 2020-12-21 16:25

    Generally, you cannot put scrollable things inside other scrollable things, where they scroll in the same direction, and have the results be reliable. Occasionally this works (e.g., WebViews in a ViewPager), but that is the exception, not the norm.

    Either:

    • Move the ListView out of the ScrollView, or

    • Move all the rest of the contents of the ScrollView into the ListView, whether using things like addHeaderView() or my MergeAdapter

    0 讨论(0)
提交回复
热议问题