一對一直播系統原始碼,Flexbox+ReclyclerView實現流式佈局
一對一直播系統原始碼,Flexbox+ReclyclerView實現流式佈局實現的相關程式碼
佈局
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent"> <androidx.recyclerview.widget.RecyclerView android:id="@+id/rv_Flexbox" android:layout_width="match_parent" android:layout_height="match_parent"/> </LinearLayout>
MainActivity
package com.example.myapplication; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.RecyclerView; import android.os.Bundle; import android.util.Log; import android.view.View; import com.google.android.flexbox.FlexDirection; import com.google.android.flexbox.FlexWrap; import com.google.android.flexbox.FlexboxLayoutManager; import com.google.android.flexbox.JustifyContent; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private RecyclerView rv_Flexbox; private List<String> list_data; private FlexBoxAdapter fAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); rv_Flexbox = (RecyclerView)findViewById(R.id.rv_Flexbox); FlexboxLayoutManager flexboxLayoutManager = new FlexboxLayoutManager(this); //flexDirection 屬性決定主軸的方向(即專案的排列方向)。類似 LinearLayout 的 vertical 和 horizontal。 flexboxLayoutManager.setFlexDirection(FlexDirection.ROW);//主軸為水平方向,起點在左端。 //flexWrap 預設情況下 Flex 跟 LinearLayout 一樣,都是不帶換行排列的,但是flexWrap屬性可以支援換行排列。 // flexboxLayoutManager.setFlexWrap(FlexWrap.WRAP);//按正常方向換行 //justifyContent 屬性定義了專案在主軸上的對齊方式。 // flexboxLayoutManager.setJustifyContent(JustifyContent.FLEX_START);//交叉軸的起點對齊。 rv_Flexbox.setLayoutManager(flexboxLayoutManager); list_data = new ArrayList<>(); list_data.add("小米手機"); list_data.add("平衡車"); list_data.add("無人機"); list_data.add("神舟膝上型電腦"); list_data.add("小鵬汽車"); list_data.add("特斯拉"); fAdapter = new FlexBoxAdapter(this,list_data); // fAdapter.notifyDataSetChanged(); rv_Flexbox.setAdapter(fAdapter); fAdapter.setOnItemClickLitener(new FlexBoxAdapter.OnItemClickLitener() { @Override public void OnItemClick(View view, int positon) { Log.e("wy", "position: "+positon+" data:" + list_data.get(positon)); } }); } }
FlexBoxAdapter
package com.example.myapplication; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.List; public class FlexBoxAdapter extends RecyclerView.Adapter<FlexBoxAdapter.myHolder> { private Context mContext; private List<String> list_data; private LayoutInflater inflater; public FlexBoxAdapter(Context mContext, List<String> list_data) { this.mContext = mContext; this.list_data = list_data; this.inflater = LayoutInflater.from(mContext); } @NonNull @Override public myHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) { View view = inflater.inflate(R.layout.fragment_rv_item,viewGroup,false); return new myHolder(view); } @Override public void onBindViewHolder(@NonNull final myHolder myHolder, int i) { myHolder.tv_title.setText(list_data.get(i)); // 如果設定了回撥,則設定點選事件 if (mOnItemClickLitener != null) { myHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int pos = myHolder.getLayoutPosition(); mOnItemClickLitener.OnItemClick(myHolder.itemView, pos); } }); } } @Override public int getItemCount() { return list_data.size(); } class myHolder extends RecyclerView.ViewHolder { TextView tv_title; public myHolder(@NonNull View itemView) { super(itemView); tv_title = (TextView)itemView.findViewById(R.id.tv_title); } } /** * 定義點選每項的介面 */ public interface OnItemClickLitener { void OnItemClick(View view, int positon); } private OnItemClickLitener mOnItemClickLitener; public void setOnItemClickLitener(OnItemClickLitener mOnItemClickLitener) { this.mOnItemClickLitener = mOnItemClickLitener; } }
drawable下
flex_item_bg.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=" android:shape="rectangle"> <!-- 填充--> <solid android:color="#00000000"/> <!-- 描邊 --> <stroke android:width="1dp" android:color="#7F7F7F" /> <!-- 圓角 --> <corners android:radius="2dp" /> </shape>
以上就是 一對一直播系統原始碼,Flexbox+ReclyclerView實現流式佈局實現的相關程式碼,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2842413/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播網站程式原始碼,FlowLayoutManager 流式佈局網站原始碼
- 一對一直播系統原始碼有哪些優勢原始碼
- 1對1直播原始碼改變直播傳統模式新穎一對一聊天系統原始碼模式
- 一對一直播系統原始碼開發工具如何搭建?原始碼
- 一對一直播原始碼對網路教育做出的系統開發原始碼
- Android實現RecyclerView巢狀流式佈局AndroidView巢狀
- 一對一直播廣泛的應用,源自於一對一直播系統原始碼的強大原始碼
- 一對一直播系統原始碼,後臺管理系統許可權控制方案原始碼
- 一對一直播原始碼,實現一個簡單的登入介面原始碼
- 一對一直播系統原始碼開發需要哪些基礎功能原始碼
- 看完你就瞭解一對一直播社交系統原始碼了原始碼
- 一對一直播系統原始碼,UICollectionViewCell自適應文字寬度原始碼UIView
- APP一對一直播交友帶社群動態短視訊功能一對多直播交友系統原始碼APP原始碼
- 一對一直播平臺原始碼,如何實現圖片釋出原始碼
- 一對一直播原始碼,利用matlab實現程式計時功能原始碼Matlab
- 關於一對一軟體如何搭建PHP直播系統原始碼的流程PHP原始碼
- 一對一直播原始碼助力一對一教育,進入直播3.0時代!原始碼
- 2022直播交友原始碼一對多直播系統原始碼同城視訊聊天交友app原始碼APP
- 新環境下的一對一直播原始碼如何實現夢想原始碼
- 手機直播原始碼,實現圖片瀑布流式滑動效果原始碼
- 一對一直播交友原始碼實現即時通訊非常“有一套”原始碼
- 一對一直播系統原始碼,按住對話方塊右滑顯示刪除原始碼
- 短視訊平臺原始碼,自定義流式佈局--kotlin原始碼Kotlin
- 大佬入局一對一直播原始碼市場,掀起波浪板的風波原始碼
- 移動佈局基礎之 流式佈局
- 什麼是一對一直播原始碼?一對一直播為何產生?原始碼
- Element原始碼分析系列1一Layout(佈局)原始碼
- 直播系統原始碼,vue實現無縫滾動原始碼Vue
- 一對一直播系統原始碼開發需要用到什麼技術原始碼
- 一對一直播系統原始碼,軟體首頁輪播圖輪播效果原始碼
- 怎樣開發一對一直播原始碼?原始碼
- 流式佈局管理器
- 直播系統app原始碼,自定義九宮格,計算器佈局,驗證碼認證APP原始碼
- 社交直播APP 社交直播原始碼 1對1與1對多直播系統APP原始碼
- 一對一直播系統開發如何在頁面內實現掃描二維碼功能
- SwiftUI 佈局之元件對齊實現上下對齊和水平居中 (教程含原始碼)SwiftUI元件原始碼
- 第五大容器佈局——流式佈局
- 直播系統原始碼,實現快速排序和歸併排序原始碼排序