文档章节

Android开发随笔之ScrollView嵌套GridView

感觉太煽情
 感觉太煽情
发布于 2015/09/14 15:40
字数 363
阅读 169
收藏 5

在开发过程总遇到ScrollView嵌套GridView,由于这两种控件都带有滚动条,当他们碰到一起的时候便会出问题,问题是gridview不滚动,并且只显示两行,为此看了官方文档,谷歌回答滚动里面没必要再加滚动,不符合UI设计。最后还是找到了网上大牛的解决方案才搞定的。

  大概写个demo测试了下,还是能嵌套使用的,提前GridView性能好像降低了。如果加载过多,UI加载变的很卡。

  主要xml布局为:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:scrollbars="none"
    >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ff00ff"
        android:orientation="vertical" >

        <com.test.MyGridView
            android:id="@+id/gridview"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="#00ffff"
            android:numColumns="5" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="1000dp"
            android:background="#ffff00" >
        </LinearLayout>
    </LinearLayout>

</ScrollView>

里面的MyGridView继承了GridView重写了onMeasure方法,代码: 

package com.test;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.GridView;

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); 
    } 
//该自定义控件只是重写了GridView的onMeasure方法,使其不会出现滚动条,ScrollView嵌套ListView也是同样的道理,不再赘述。 
    @Override 
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
        int expandSpec = MeasureSpec.makeMeasureSpec( 
                Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); 
        super.onMeasure(widthMeasureSpec, expandSpec); 
    } 
}

通过上面重写的GridView,既可以嵌套到ScrollView里面。

本文转载自:http://blog.csdn.net/lonely_fireworks/article/details/7242544

感觉太煽情
粉丝 43
博文 102
码字总数 25839
作品 0
临沂
程序员
私信 提问
Android开发:ScrollView嵌套GridView的解决办法

前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。 解决办法,自定义一个GridView控件 publ...

小0426小
2013/05/30
534
0
android 中 scollView中嵌套GridView显示UI不全

的解决办法 前些日子在开发中用到了需要ScrollView嵌套GridView的情况,由于这两款控件都自带滚动条,当他们碰到一起的时候便会出问题,即GridView会显示不全。 解决办法,自定义一个GridVie...

xiahuawuyu
2013/01/07
3.9K
0
Tips_Android中ScrollView嵌套Listview或Gridview(ZZ)

按照android的标准,ScrollView中是不能嵌套具有滑动特性的View的,但是有时如果设计真的有这样做的需要,或者为了更方便简单的实现外观(比如在外在的大布局需要有滑动的特性,并且内部有类...

mstian06
2014/06/26
351
0
ListView/GridView 按住拖动黑线框/桌面背景透上来【已解决】

本文标签: GridView , listview , 黑线框 方法1:listView.setDividerHeight(0); 方法2:this.getListView().setDivider(null); 方法3:android:divider="@null" 方法4:setCacheColorHint......

mythroad
2013/09/11
354
0
ScrollView 与 ListView 以及 GridView 滑动冲突完美解决

我们在用ScrollView嵌套ListView或者GridView的时候会遇到两个问题,一个问题是ListView高度不正常,另外一个问题是ListView无法滑动。因为这几个控件太常用了。我们来看看应该怎么解决呢?在...

chenhongjiang
06/03
27
0

没有更多内容

加载失败,请刷新页面

加载更多

从0搭建自己的webpack开发环境(五)

往期回顾: 从0搭建自己的webpack开发环境(一) 从0搭建自己的webpack开发环境(二) 从0搭建自己的webpack开发环境(三) 从0搭建自己的webpack开发环境(四) 前四篇文章我们已经掌握了w...

前端优选
昨天
5
0
docker 构建php-fpm 7.2(swoole) 镜像

mkdir -p ~/mnt/docker/phpmkdir -p ~/mnt/docker/php#下载swoole-2.2.0.tgz安装包到software 下载地址:http://pecl.php.net/package/swoole/2.2.0#创建Dockerfilevim ~/docker/......

Jack088
昨天
5
0
简单工厂

定义:由一个工厂对象决定创建出哪一种产品类的实例 类型:创建型,但不属于GOF23种设计模式 工厂类负责创建的对象比较少 客户端(应用层)只知道传入工厂类的参数,对于如何创建对象,不关心...

东风破2019
昨天
4
0
SSH安全加强两步走

从 OpenSSH 6.2 开始已经支持 SSH 多因素认证,本文就来讲讲如何在 OpenSSH 下启用该特性。 OpenSSH 6.2 以后的版本多了一个配置项 AuthenticationMethods。该配置项可以让 OpenSSH 同时指定...

Linux就该这么学
昨天
7
0
聊聊nacos的TcpSuperSenseProcessor

序 本文主要研究一下nacos的TcpSuperSenseProcessor TcpSuperSenseProcessor nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSenseProcessor.java @Compon......

go4it
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部