查看在線pdf文檔:
http://note.youdao.com/s/EM20Cggm
以下是我的基本UI組件該系列的文章涩僻,歡迎大家轉載和分享:
基本UI組件的封裝庫(一)——basicUI
基本UI組件的封裝庫(二)——basicUI
基本UI組件的封裝庫(三)——basicUI
基本UI組件的封裝庫(四)——basicUI
前言
我在之前BasicUI項目一共包括了:1培漏、Recycleview的封裝,支持單布局和多布局群凶,支持添加頭部和底部,還包括了懸浮列表的基本封裝念脯。2、dialog的封裝煌往。支持從底部彈出曙寡,并可設置動畫糠爬,是否寬度全屏等樣式。3举庶、NavigationBar的封裝执隧,可以在activity中動態(tài)設置添加頭部。4户侥、PopupWindow的封裝 5镀琉、editText的封裝,自帶清除按鈕蕊唐,并設置按鈕的顏色和按鈕的資源 6滚粟、TextView的封裝、支持設置背景顏色和背景的圓角大小刃泌,以及支持設置文字上下左右的圖標居中
這次新增內容有:1、流式布局的封裝(支持刷新數據)署尤、2耙替、仿今日頭條的TableLayout、3曹体、花束加載loading效果俗扇、4、仿58同城多條目菜單刪選封裝
如果大家有什么問題箕别,歡迎您在下方留言或者在BasicUI中留下的問題
Gradle依賴
- Step 1. Add the JitPack repository to your build file
Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
- Step 2. Add the dependency
dependencies {
implementation 'com.github.Peakmain:BasicUI:1.1.0-androidx'
}
使用
關于流式布局的使用
大家直接在布局中引用即可
<com.peakmain.ui.widget.FlowLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
在activity中直接設置adapter即可
BaseFlowAdapter adapter=new BaseFlowAdapter() {
@Override
public int getCount() {
return mCount;//自己數據的實體類的大小
}
@Override
public View getView(final int position, ViewGroup parent) {
return view;//自己的view
}
}
mFlowLayout.setAdapter(adapter);
如果想刷新數據只需要調用自己封裝的adapter的notifyDataChange方法即可
adapter.notifyDataChange();
仿今日頭條的TableLayout的使用
-
效果
效果圖.gif 使用:
第一步:自定義自己的TableLayout繼承BaseTabLayout<T>將泛型換成自己的實體類就可以了
public class TabLayout extends BaseTabLayout<ProjectTreeBean> {//換成自己的實體類
public TabLayout(Context context) {
super(context);
}
public TabLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TabLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
public String setTableTitle(List<ProjectTreeBean> bean, int position) {
return bean.get(position).getName();//標題的名字铜幽,換成自己的
}
}
第二步:在自己的布局中使用自己定義的布局就可以了
說明:一共有三個屬性大家可以設置。1串稀、未選中文字的顏色originColor除抛,2、選中時候的文字顏色changeColor母截,3到忽、是否顯示下劃線isShowUnderLine(下劃線的顏色和選中的時候的文字顏色一致)
花束加載loading效果
兩種方式:1、大家在布局中使用
<com.peakmain.ui.loading.CircleLoadingView
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
2清寇、直接在activity中使用show的方式顯示和hide的方法隱藏
CircleLoadingView loadingView=new CircleLoadingView(this);
loadingView.show();
loadingView.hide();
未設置自定義屬性喘漏,后期會加入
仿58同城多條目菜單刪選封裝
-
效果
效果 使用
1、第一步:繼承BaseListMenuAdapater,需要設置三個參數,第一個設置標題的布局华烟,第二個設置菜單view的布局翩迈,第三個設置菜單的內容
public class ListMenuAdapter extends BaseListMenuAdapater {
@Override
public int getTitleLayoutId() {
return R.layout.ui_list_data_screen_tab;//自己標題的布局
}
@Override
protected void setMenuContent(View menuView, final int position) {
//不同菜單的布局參數設置
}
@Override
protected int getMenuLayoutId() {
return R.layout.ui_list_data_screen_menu;//自己菜單的布局
}
}
第二步:布局中引入ListMenuView
<com.peakmain.ui.widget.menu.ListMenuView
android:id="@+id/list_data_screen_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
第三步:設置adapter即可,需要將標題集合傳進去
mMenuView = findViewById(R.id.list_data_screen_view);
mMenuView.setAdapter(adapter);//自己的適配器
結語
如果大家感興趣想知道更多的使用,大家可以看我實戰(zhàn)項目wanandorid
我的項目BasicUI的Github地址:https://github.com/Peakmain/BasicUI