Android开发之实现GridView支付宝九宫格

2019-12-10 19:53:19刘景俊

因为有时候我们的Gridview中的item可能比较多,为了放得下,一般都会用一个ScrollView来嵌套起来。这时就会出现一个常见的问题,我们在开发中经常会碰到,就是当ListView或者GridView被嵌套在ScrollView中时,发现只会显示第一行的数据,后面的数据就不会显示了。至于产生这个问题的原因,可能是因为Gridview和ListView都是可以根据子item的宽高来显示大小的,但是一旦嵌套到ScrollView中就可以上下滑动,于是系统就不能确定到底该画多大,所以才会产生这样的问题。

这个问题的解决方法在网上很多,一般百度一下就能查到,下面是GridView的解决方法:

 

 
  1. public class MyGridView extends GridView {   public MyGridView(Context context, AttributeSet attrs) {  
  2. super(context, attrs);   }  
  3. public MyGridView(Context context) {   super(context);  
  4. }   public MyGridView(Context context, AttributeSet attrs, int defStyle) {  
  5. super(context, attrs, defStyle);   }  
  6. @Override  public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {  
  7. int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,   MeasureSpec.AT_MOST);  
  8. super.onMeasure(widthMeasureSpec, expandSpec);   }  

接下来,我们就定义一个带分割线的选择器,具体代码是:

 

 
  1. <?xml version="1.0" encoding="utf-8"?>   <selector xmlns:android="http://www.easck.com/apk/res/android">