android gridview固定行数据,如何在Android gridview中为行设置不同的列
我有類似的東西,我解決與新的RecyclerView。
我創建了一個片段與一個RecyclerView。
xml上的RecyclerView:
android:id="@+id/filter_subtypes" android:layout_width="match_parent" android:layout_height="match_parent" />
在你的Fragment / Activity(OnViewCreated在我的片段case)。
我找到RecyclerView并設置一個適配器 – 一個繼承自RecyclerView的正常適配器類。您的查看持有人類> –
然后我創建一個GridLayoutManager
final GridLayoutManager mng_layout = new GridLayoutManager(this.getActivity(), TOTAL_CELLS_PER_ROW/*In your case 4*/);
然后我覆蓋這個方法來設置動態列數(單元格)
mng_layout.setSpanSizeLookup( new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
switch( adapterSubtype.getItemViewType(position) ) {
case FilterSubtypesAdapter.TYPE_LOW:
return TOTAL_CELLS_PER_ROW;
case FilterSubtypesAdapter.TYPE_HIGH:
return 2;
default:
return -1;
}
}
});
myRecyclerView.setLayoutManager(mng_layout);
有了這個,你會得到動態行數上的單元格。
額外:
然后,如果您在適配器上使用相同的視圖/類型視圖,您將獲得相同的w& h視圖。您需要為TYPE_HIGH創建2個xml視圖,為TYPE_LOW創建其他視圖。
所以,在你的適配器,你需要有2種數據(1為高圖像和1為低圖像)。
您必須覆蓋此方法
@Override
public SubtypeViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = null;
if (viewType==TYPE_HIGH) {
view = inflater.inflate(R.layout.item_image_high, parent, false);
} else {
view = inflater.inflate(R.layout.item_image_low, parent, false);
}
return new SubtypeViewHolder(view, viewType);
}
@Override
public int getItemViewType(int position) {
return (list.get(position).getType()==Subtype_type.HIGH) ? TYPE_HIGH : TYPE_LOW;
}
我希望我很清楚,任何問題告訴我。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的android gridview固定行数据,如何在Android gridview中为行设置不同的列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 写字体投影,androi
- 下一篇: android uri获取参数,andr