zoukankan      html  css  js  c++  java
  • ScollerView 内嵌套 ListView

    package com.bluedragonfly.widget;
    
    import android.content.Context;
    import android.util.AttributeSet;
    import android.view.View.MeasureSpec;
    import android.widget.GridView;
    import android.widget.ListView;
    
    public class InnerScrollListView extends ListView{
    
    	 public InnerScrollListView(Context context, AttributeSet attrs) {
    	        super(context, attrs);
    	    }
    	 
    	    public InnerScrollListView(Context context) {
    	        super(context);
    	    }
    	 
    	    public InnerScrollListView(Context context, AttributeSet attrs, int defStyle) {
    	        super(context, attrs, defStyle);
    	    }
    
    	
    	@Override
    	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
                    MeasureSpec.AT_MOST);
            super.onMeasure(widthMeasureSpec, expandSpec);
    	}
    
    }
    

      重写ListView

    然后在布局文件中

    <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
            android:fillViewport="true"
            >
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:focusable="true"
               android:focusableInTouchMode="true" >
        
                <InnerScrollListView/>
        
            </LinearLayout>    
    

      

     android:fillViewport="true"

    android:focusable="true"
    android:focusableInTouchMode="true"这三个属性是必需的,否者会出现ScollerView会自动往下滑动一段距离


    使用这个方法多日,纵然是解决内嵌问题,可是新的问题又来
    1.如果你的内嵌内嵌节目是个fragment 需要和其他界面来回切换 会发现内嵌界面会自动下滑一段距离,如果想让他回到顶部可用scrollTo,但不能掩耳盗铃忽视问题所在
    2.还是以上条件下,来回切换你还发现切换速度很慢很卡,这是因为内嵌导致适配器切换一次刷新一次,不停的去getView,自然就慢,这样就严重影响体验
    故建议还是使用Listview添加header和foot来完成想要的效果
  • 相关阅读:
    [树莓派]wifi在面板看不到,但是可以scan到的解决方案
    关于GCD的几个结论
    Ubuntu配置vncserver
    树莓派更改vnc分辨率
    玩转树莓派
    两个树莓派(或香蕉派)之间的音频直播测试
    使用树莓派录音——USB声卡
    树莓派自定义命令(给命令起别名)
    gitlab搭建
    linux下的缓存机制及清理buffer/cache/swap的方法梳理 (转)
  • 原文地址:https://www.cnblogs.com/gfqFighting/p/4057184.html
Copyright © 2011-2022 走看看