上滑动改变头部,仿支付宝头部变化,解决ScrollView与listView冲突问题
来源:互联网 发布:下载哈萨克dombira软件 编辑:程序博客网 时间:2024/05/21 07:56
为了快速实现,请看图,看代码,关键点在实现ScrollView 的onScrollChanged() 方法import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.ScrollView;import java.util.ArrayList;import java.util.List;/** * @author lxs * @date :2017/4/13 * @Description: */public class MainActivity extends AppCompatActivity { private List<String> list = new ArrayList<String>(); private ListviewDataAdapter listviewDataAdapter; private PayScrollView payScrollView; private ListViewForScrollView listView; private RelativeLayout header_rl; private LinearLayout header_il, header_sheliang_ll; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listView = (ListViewForScrollView) findViewById(R.id.list_v); listView.setFocusable(false); payScrollView = (PayScrollView) findViewById(R.id.scroll_v); header_rl = (RelativeLayout) findViewById(R.id.header_rl); header_il = (LinearLayout) findViewById(R.id.header_il); header_sheliang_ll = (LinearLayout) findViewById(R.id.header_sheliang_ll); payScrollView.setOnScrollChangedListeners(new PayScrollView.OnScrollChangedListener() { @Override public void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt) { if (t > header_sheliang_ll.getHeight() / 2 * 3) { header_il.setVisibility(View.VISIBLE); header_rl.setVisibility(View.GONE); } else if (t < header_sheliang_ll.getHeight() / 2) { header_il.setVisibility(View.GONE); header_rl.setVisibility(View.VISIBLE); } } }); getData(true); } private void getData(boolean falge) { if (falge) { for (int i = 0; i < 50; i++) { list.add("张三" + i); } listviewDataAdapter = new ListviewDataAdapter(list, this); listView.setAdapter(listviewDataAdapter); } }}import android.content.Context;import android.util.AttributeSet;import android.widget.ScrollView;/** * @author lxs * @date 创建时间 : 2017/4/10 * @Description: */public class PayScrollView extends ScrollView{ public interface OnScrollChangedListener { void onScrollChanged(ScrollView who, int l, int t, int oldl, int oldt); } private OnScrollChangedListener mOnScrollChangedListener; public PayScrollView(Context context) { super(context); } public PayScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public PayScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onScrollChanged(int l, int t, int oldl, int oldt) { super.onScrollChanged(l, t, oldl, oldt); if (mOnScrollChangedListener != null) { mOnScrollChangedListener.onScrollChanged(this, l, t, oldl, oldt); } } public void setOnScrollChangedListeners(OnScrollChangedListener listener) { mOnScrollChangedListener = listener; }}
下面是实现listview 防止冲突import android.content.Context;import android.util.AttributeSet;import android.widget.ListView;/** * @author lxs * @date 创建时间 : 2017/4/10 * @Description: */public class ListViewForScrollView extends ListView { public ListViewForScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle);// TODO Auto-generated constructor stub } public ListViewForScrollView(Context context, AttributeSet attrs) { super(context, attrs);// TODO Auto-generated constructor stub } public ListViewForScrollView(Context context) { super(context);// TODO Auto-generated constructor stub } /** * 重写该方法,达到使ListView适应ScrollView的效果 */ @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); }}
效果如下图
2 0
- 上滑动改变头部,仿支付宝头部变化,解决ScrollView与listView冲突问题
- Android中ListView与头部试图(头部视图为地图等)滑动冲突问题
- ScrollView与Listview滑动冲突解决
- 解决ListView与ScrollView的滑动冲突
- 解决ScrollView 与 ListView 的滑动冲突
- 仿UC首页头部和仿支付宝头部Demo
- ListView与ScrollView滑动冲突问题
- 解决EditText与ScrollView滑动冲突问题
- 给UITextView 头部插入视图(同理 给YYTextView加上头部,解决scrollview和textview冲突的问题)
- 高仿支付宝首页头部动画
- 解决scrollview与listview冲突问题
- 解决ScrollView 与listview冲突问题
- 解决ScrollView与ListView显示冲突问题
- 解决scrollview 与 listview 控件冲突问题
- 解决ListView在ScrollView中滑动冲突的问题
- Android解决ScrollView嵌套ListView滑动冲突问题
- 安卓解决viewPager+scrollView+listView滑动冲突的问题
- ScrollView嵌套ListView——解决滑动冲突问题
- Tips:shell 里传递多行内容到文本 及sudo 配置
- 【转】Android 常用adb shell 命令
- java.lang.reflect.Array.newInstance与list.toArray
- 设备端口的访问
- 如何实现Session共享
- 上滑动改变头部,仿支付宝头部变化,解决ScrollView与listView冲突问题
- 文章标题
- Oracle之数据库逻辑结构基础讲解
- Nginx负载均衡时RR和ip_hash策略
- windows 使用MD5校验
- java过滤特殊字符串
- 利用cookie控制弹窗24小时只显示一次
- 高级项目管理师培训!看优秀的领导者如何给团队注入激情?
- 移动端H5图片上传的那些坑