gpt4 book ai didi

android - 将页眉/页脚添加到 GridView

转载 作者:太空狗 更新时间:2023-10-29 15:28:18 26 4
gpt4 key购买 nike

我很难设计一个带有页眉和页脚的 GridView 布局:

layout

我所做的是,创建一个只有一个项目的 ListView,即 GridView 并使用 addHeaderView() 添加页眉/页脚和 addFooterView()。问题是 GridView 没有显示整个项目。我禁用了 GridView 滚动使用:

  gridview.setOnTouchListener(new View.OnTouchListener(){

@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE){
return true;
}
return false;
}

});

有没有办法让 GridView 显示所有项目?我已经尝试将 GridView 的高度设置为 wrap_content 但它不起作用。这是 GridView 的布局:

<GridView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="2"
android:background="@color/main_gray"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:stretchMode="columnWidth"
android:gravity="center">

</GridView>

我知道将 gridview 放在 listview 中是不对的,但客户要求这种布局..

最佳答案

这是一个很好的起点:

https://android.googlesource.com/platform/packages/apps/Gallery2/+/idea133/src/com/android/photos/views/HeaderGridView.java

这个类可以很好地处理 header ,与 ListView 的处理方式完全相同。

您还应该设法添加页脚处理,但这有点复杂,因为您必须根据 Gridview 中的元素数量放置占位符。由于 Gridview 行的高度基于其最后一个元素的高度,因此您必须获取 GridView

最后一项的高度
convertView.setVisibility(View.INVISIBLE);
convertView.setMinimumHeight(lastItemHeight);

我用它来计算最后一项的高度。它可能不是最优的,但它适用于我的用例:

View v = mAdapter.getView(adjPosition, convertView, parent);

//measure last item height for placeholders before footer views
v.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
lastItemHeight = v.getMeasuredHeight();
lastItemHeight = v.getMeasuredHeight();

关于android - 将页眉/页脚添加到 GridView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23239505/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com