先上一张效果图,今天又学会了录制Gif这一项技能
当ScrollView和ListView嵌套的时候就会产生滑动冲突,会导致ListView滑动不了,网上有很多人提出的解决问题是计算每个ListView的Item的高,然后重写onMeasure方法。但是这样ListView无法复用,如果是大量图片的情况下会导致OOM。所以还是得重根本上解决问题。
代码
MainActivity主要是对ListView进行赋值,将ListView保留ScrollView的引用,ScrollView保留ListView的引用。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import java.util.ArrayList;
import java.util.List;
import android.widget.ArrayAdapter;
public class MainActivity extends AppCompatActivity {
private MyListView mListView;
private List<String> mDates;
private MyScrollView mYscrollview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initData();
mListView = (MyListView) findViewById(R.id.id_recyclerview);
mYscrollview = (MyScrollView) findViewById(R.id.my_scrollview);
mListView.setScrollview(mYscrollview);
mYscrollview.setListView(mListView);
mListView.setAdapter(new ArrayAdapter<String>(this, R.layout.item_home, mDates));
}
protected void initData()
{
mDates = new ArrayList<>();
for (int i = 'A'; i < 'Z'; i++)
{
mDates.add("" + (char) i);
}
}
}
activity_main
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.example.apple.studydispatchtouchevent.MyScrollView
android:id="@+id/my_scrollview"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/article"/>
<Button
android:layout_width="match_parent"
android:layout_height="500dp" />
<com.example