Android ScrollView开发中遇到问题

1,解决ScrollView下嵌套GridView显示不全的问题

由于GridView是可滑动的控件,嵌套在ScrollView下时需要重写onMeasure方法。

public class MyGridView extends GridView{
      public MyGridView(Context context, AttributeSet attrs) { 
            super(context, attrs); 
        } 
     
        public MyGridView(Context context) { 
            super(context); 
        } 
     
        public MyGridView(Context context, AttributeSet attrs, int defStyle) { 
            super(context, attrs, defStyle); 
        } 
     
        @Override 
        public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     
            int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, 
                    MeasureSpec.AT_MOST); 
            super.onMeasure(widthMeasureSpec, expandSpec); 
        } 
}
然后在布局XML文件中引入MyGridView即可。ListView同理。


2,ScrollView嵌套LinearLayout布局不能撑满全屏的问题


当ScrollView里的元素想填满ScrollView时,使用"fill_parent"或者"match_parent"是不管用的,必需为ScrollView设置:android:fillViewport="true"。  

 

   当ScrollView没有fillVeewport=“true”时, 里面的元素(比如LinearLayout)会按照wrap_content来计算(不论它是否设了"fill_parent"或者"match_parent"),而如果LinearLayout的元素设置了fill_parent,那么也是不管用的,因为LinearLayout依赖里面的元素,而里面的元素又依赖LinearLayout,这样自相矛盾.所以里面元素设置了fill_parent,也会当做wrap_content来计算.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值