nec*_*ixy 26 android android-gridview
一个简单的问题:
在ListView我使用此代码:
list.addHeaderView(headerView);
工作时如何处理gridview?
谢谢.
Com*_*are 32
GridView抱歉,不支持页眉或页脚视图.
小智 25
在Google照片应用程序中有一个很好的GridView实现,并且支持标题,因为它可以按原样使用它的OSS代码,或者将其作为您自己实现的参考:http: //grepcode.com/file/repository.grepcode .COM/JAVA /转/ com.google.android/Android的应用程序/ 4.3_r2.1/COM /安卓/照片/视图/ HeaderGridView.java
基本思路非常简单 - WrapperAdapter通过按列数增加项目数来创建假行,然后返回项目的标题视图.
你可以用它.当您到达/离开最后一个项目数时,页脚会显示/隐藏在网格的底部.它实际上并没有滚动,但我几乎没有注意到它的区别.
在您的activity/fragment的onCreate/onCreateView中,您将OnScrollListener添加到GridView:
    ....
    GridView gridview = (YMAnimatedGridview) v.findViewById(R.id.my_gridview);
    gridview.setAdapter(adapter);
    final View footerView = mainView
            .findViewById(R.id.my_grid_footer_view);
    gridview.setOnScrollListener(new GridView.OnScrollListener() {
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
                if (firstVisibleItem + visibleItemCount == totalItemCount) {
                    // last item in grid is on the screen, show footer:
                    footerView.setVisibility(View.VISIBLE);
                } else if (footerView.getVisibility() != View.GONE) {
                    // last item in grid not on the screen, hide footer:
                    footerView.setVisibility(View.GONE);
                }
            }
        @Override
        public void onScrollStateChanged(AbsListView view,
                int scrollState) {
        }
    });
您的布局应如下所示.请注意gridview中的layout_weight(和layout_height)参数,当页脚变为可见时,需要为页脚创建正确的空间.
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <GridView
        android:id="@+id/my_gridview"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:columnWidth="160dp"
        android:gravity="center_horizontal"
        android:horizontalSpacing="12dp"
        android:numColumns="auto_fit"
        android:layout_weight="1"
        android:stretchMode="columnWidth"
        android:verticalSpacing="6dp" />
    <TextView
        android:id="@+id/my_grid_footer_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:layout_marginBottom="8dp"
        android:orientation="horizontal"
        android:visibility="gone"
        android:text="footer text here" >
    </TextView>
</LinearLayout>
示例代码:
GridViewWithHeaderAndFooter gridView = (GridViewWithHeaderAndFooter) v.findViewById(R.id.ly_image_list_grid);
LayoutInflater layoutInflater = LayoutInflater.from(this);
View headerView = layoutInflater.inflate(R.layout.test_header_view, null);
View footerView = layoutInflater.inflate(R.layout.test_footer_view, null);
gridView.addHeaderView(headerView);
gridView.addFooterView(footerView);
Gradle构建:.
compile 'in.srain.cube:grid-view-with-header-footer:1.0.12'
| 归档时间: | 
 | 
| 查看次数: | 29390 次 | 
| 最近记录: |