`
zhiweiofli
  • 浏览: 515446 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多

 一、ScrollView + GridView

 在ScrollView中放置GridView,无论GridView的高度是设置 wrap_content,还是 match_parent,最终渲染时GridView都会发生形变,原因是 ScrollView 不能正确算出 GridView 的实际显示高度。

 

 解决方法有两个:

 

  1.  设定GridView 高度的dp值,同时也可配合使用 values/dimens.xml 进行适配,缺点是适配难度大,不灵活,而且 GridView 的 Adapter 中的 convertView 可能不再重用(GridView不能滚动),导致需要调整 getView 的代码。
  2.  重写GridView 计算高度的方法:
public class CanInScrollGridView extends GridView {
    public CanInScrollGridView(Context context) {
        super(context);
    }

    public CanInScrollGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CanInScrollGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // Calculate entire height by providing a very large height hint.
        // View.MEASURED_SIZE_MASK represents the largest height possible.
        int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,
                MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);

        ViewGroup.LayoutParams params = getLayoutParams();
        params.height = getMeasuredHeight();     //获取实际的显示高度
    }

}

 

 二、GridView实现伪“瀑布流”

Github上的牛人项目:https://github.com/maurycyw/StaggeredGridView

StaggeredGridView本质上并不是GridView的派生,不过它实现GirdView的功能、并对其进行扩展,可以使得列表的项目不对称显示,如下图:

 

 

0
0
分享到:
评论

相关推荐

    GridView嵌套应用实例GridView嵌套应用实例

    这就是所谓的“GridView嵌套应用”。 在ASP.NET中,GridView嵌套通常是通过在模板字段(TemplateField)中添加另一个GridView来实现的。首先,我们需要创建一个外层GridView,然后在某个特定行的TemplateField中...

    c#的gridview应用

    总之,C#的GridView应用提供了强大而灵活的数据展示和管理功能。结合SqlDataSource,开发者可以轻松地实现数据的检索、展示、编辑和删除,无需大量编写代码。通过熟练掌握GridView的使用,可以大大提高ASP.NET应用...

    viewPager与GridView结合的应用

    `GridView`通常用于展示大量小图标或者列表项,比如应用的启动屏幕、照片库等。通过`Adapter`,`GridView`能够绑定数据并动态生成网格中的每个单元格。 结合`ViewPager`和`GridView`,我们可以创建一个可以左右滑动...

    C# gridview 应用实例

    在.NET框架中,C#的GridView控件是一个非常强大的数据展示工具,广泛应用于网页和桌面应用的开发。它能够方便地展示数据集、数据库表或其他数据源中的信息,并且提供了丰富的功能,如排序、分页、筛选、编辑、删除等...

    Gridview的初步应用 删除/更新/撤销/编辑/绑定/翻页

    本教程将深入探讨GridView的初步应用,包括删除、更新、撤销、编辑、绑定以及翻页功能。 首先,让我们了解GridView的基本结构。GridView由一系列行和列组成,每行包含一个或多个单元格,可以显示数据表中的记录。...

    GridView基本应用实例

    在这个"GridView基本应用实例"中,我们将深入探讨如何利用GridView控件实现这些功能,以及两种不同的数据来源:内存中的数据(DataInMemory)和数据库中的数据(DataFromDatabase)。 首先,让我们来看看如何在...

    Dialog嵌套GridView显示系统已安装的应用程序

    GridView是一种可以将数据以网格形式排列的视图组件,非常适合用来展示多行多列的数据项,如应用图标和应用名。 首先,我们需要创建一个自定义的Dialog,这可以通过继承`AlertDialog.Builder`类或者直接使用`...

    GridView 高级扩展应用

    GridView是Windows Forms应用程序中常用的控件,用于展示数据集,如数据库中的表格数据。在.NET框架中,GridView提供了丰富的功能,允许用户进行数据编辑、排序、分页等操作。本主题将深入探讨GridView的高级扩展...

    Gridview控件全部应用

    在.NET框架中,GridView控件是ASP.NET Web Forms的一个核心组件,主要用于展示和操作结构化的数据,如数据库表格。在本教程中,我们将深入探讨如何充分利用GridView控件进行各种操作,包括分页、导出导入Excel、排序...

    Asp。net中GridView基础应用

    GridView的基础应用涵盖了网页开发中的数据展示和基本操作,对于理解Web应用程序的数据处理至关重要。 一、GridView简介 GridView控件是ASP.NET Web Forms中的一个服务器控件,它能够以表格的形式动态地显示数据源...

    GridView控件应用9个经典实例

    以下是对"GridView控件应用9个经典实例"的详细说明: 1. **基础展示** - GridView的基本使用涉及数据源的绑定,如SqlDataSource或ObjectDataSource。通过设置`DataSourceID`属性,可以将数据源与GridView绑定,...

    Android类似桌面应用拖动的GridView

    "Android类似桌面应用拖动的GridView"是指一个特殊定制的GridView,它模仿了Android桌面应用的交互方式,允许用户通过拖放操作来改变GridView中各个元素的位置。这种功能在创建自定义启动器、文件管理器或个性化布局...

    GridView的各种高级应用代码实例

    在这个主题中,我们将深入探讨GridView的一些高级应用,包括全选功能、批量删除以及数据导出到Excel的功能。 1. **全选功能**: GridView的全选功能通常通过在表头添加一个复选框来实现。当用户勾选这个复选框时,...

    GridView 常见应用技巧

    GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一...

    GridView内嵌套使用GridView

    在ASP.NET开发中,GridView控件是用于展示数据的强大工具,尤其在呈现表格形式的数据时。在本项目中,我们探讨的主题是“GridView内嵌套使用GridView”,这通常是为了实现更复杂的数据显示,例如,当数据有层次关系...

Global site tag (gtag.js) - Google Analytics