91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么通過自定義LayoutManager實現花式表格

發布時間:2021-08-10 14:35:34 來源:億速云 閱讀:176 作者:Leah 欄目:編程語言

本篇文章為大家展示了Android中怎么通過自定義LayoutManager實現花式表格,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

TableView具有如下特點:

支持不規則表格同時支持橫向和縱向滾動支持頂部和左側懸浮基于RecyclerView,所以RecyclerView自定義子視圖、高效回收、子視圖多樣性這些特點它都有沒有多層RecyclerView嵌套,性能更棒

Github地址

使用

第一步 | 添加xml文件

<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ui.fragment.table.TableFragment"> <com.orient.me.widget.rv.adapter.TableView android:id="@+id/tb" android:layout_width="match_parent" android:layout_height="match_parent"/></FrameLayout>

第二步 | 獲取TableView

在展示代碼之前,了解一下TableView中的主要函數:

這個setTitle(boolean isLeftOpen, boolean isTopOpen)有什么作用呢?為了確保表格的每一個單元格的長度和寬度都一樣(子視圖可以在橫縱方向上占有多個單元格),寬和高都使用兩種方式:

設置具體的值,那么單元格的寬或者高的值就是具體的設置一行或者一列可以容納的單元格數量

所以寬高各有兩種,模式的數量 = 2 * 2,總共有:

代碼:

// if use butterknife// or use findViewById@BindView(R.id.tb) TableView mTable;// 默認為 TableLayoutManager.MODE_A, 4, 8mTable.setModeAndValue(TableLayoutManager.MODE_A, 6, 8);

第三步 | 創建數據類

實現ICellItem接口:

public class TableCell implements ICellItem { private String name; private String value; private int type; private int row; private int col; private int widthSpan; private int heightSpan; //... 省略構造函數和Get Set方法 @Override public int getRow() { return row; } @Override public int getCol() { return col; } @Override public int getWidthSpan() { return widthSpan; } @Override public int getHeightSpan() { return heightSpan; }}

第四步 | 設置適配器

private TableAdapter<TableCell> mAdapter;protected void initWidget(View root) { // 假設在這個方法中初始化 mTable.setAdapter(mAdapter = new TableAdapter<TableCell>(new ArrayList<>()) { @Override public int getItemLayout(TableCell tableCell, int pos) {  // ... 返回子視圖布局文件  // 支持多類型  return R.layout.table_cell_content_item; } @Override public BaseAdapter.ViewHolder<TableCell> onCreateViewHolder(View root, int itemType) {  // itemType是子視圖布局文件  // 根據布局返回具體的ViewHolder  return new ContentHolder(root); } });}// 具體的ViewHolderclass ContentHolder extends BaseAdapter.ViewHolder<TableCell>{ TextView mContent; public ContentHolder(View itemView) {  super(itemView);  mContent = itemView.findViewById(R.id.tv_name); } @Override protected void onBind(TableCell tableCell) {  mContent.setText(tableCell.getValue()); } }

第五步 | 重新測繪

如果TableView使用的模式是Mode_AMode_CMode_D,需要再重新測量:

mTable.post(() -> mTable.reMeasure());

上述內容就是Android中怎么通過自定義LayoutManager實現花式表格,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

本溪| 尉犁县| 家居| 满城县| 潞城市| 汉沽区| 福贡县| 黎平县| 醴陵市| 阿拉善盟| 抚州市| 平原县| 镇赉县| 高平市| 石林| 上杭县| 九龙坡区| 翁源县| 金华市| 乐清市| 潜山县| 昌黎县| 三亚市| 利津县| 页游| 岐山县| 西峡县| 宁化县| 扎鲁特旗| 滦南县| 商城县| 同仁县| 乐清市| 晋宁县| 大同市| 新宁县| 张掖市| 尖扎县| 金平| 旅游| 饶阳县|