中級(jí)思路

1, 二級(jí)列表(ExpandableListView)

①創(chuàng)建布局,找控件

②獲取數(shù)據(jù):死數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù)

創(chuàng)建適配器:10個(gè)方法要掌握

④設(shè)置適配器

⑤父項(xiàng)、子項(xiàng)點(diǎn)擊事件

⑥基本屬性


2, Listview手動(dòng)、自動(dòng)加載更多

1) Listview

①創(chuàng)建布局,找控件

②獲取網(wǎng)絡(luò)數(shù)據(jù)

③創(chuàng)建適配器:兩個(gè)優(yōu)化(必會(huì))

④設(shè)置適配器



(2) Listview手動(dòng)加載更多

①創(chuàng)建布局,找控件

②獲取網(wǎng)絡(luò)數(shù)據(jù)

③創(chuàng)建適配器:兩個(gè)優(yōu)化(必會(huì))

④設(shè)置適配器

⑤給Listview添加一個(gè)footer

⑥點(diǎn)擊footer中button加載更多:page++,獲取數(shù)據(jù)


(3) Listview自動(dòng)加載更多

①創(chuàng)建布局,找控件

②獲取網(wǎng)絡(luò)數(shù)據(jù)

③創(chuàng)建適配器:兩個(gè)優(yōu)化(必會(huì))

④設(shè)置適配器

⑤定義一個(gè)變量isBottom表示是否滑到底部

⑥Listview設(shè)置滑動(dòng)監(jiān)聽


3, 側(cè)滑菜單

①添加依賴

②創(chuàng)建布局:DrawerLayout、NavigationView(三個(gè)屬性、menu)

③設(shè)置actionbar:toolbar設(shè)置標(biāo)題、logo、關(guān)聯(lián)toobar和側(cè)滑菜單

④監(jiān)聽事件:頭部監(jiān)聽、側(cè)滑菜單監(jiān)聽、DrawerLayout、代買開關(guān)側(cè)滑菜單

⑤沉浸式狀態(tài)欄


4, 選項(xiàng)菜單

①創(chuàng)建選項(xiàng)菜單(onCreateOptionsMenu):兩種方式-代碼和menu(showAsAction)

②選項(xiàng)菜單的點(diǎn)擊事件(onOptionsItemSelected):switch


5, 上下文菜單

①注冊(cè)上下文菜單:registerForContextMenu()

②創(chuàng)建上下文菜單:onCreateContextMenu()

③上下文菜單點(diǎn)擊事件:onContextItemSelected()


5, RecyclerView基本使用

①添加依賴(版本問(wèn)題注意)

②創(chuàng)建布局(寬高必須是充滿的)

③找控件

④設(shè)置布局管理器(三種顯示方式:線性布局、網(wǎng)格布局、瀑布流布局)

⑤獲取數(shù)據(jù)(切換子線程的方法)

創(chuàng)建適配器-- 重寫三個(gè),通過(guò)接口回調(diào)實(shí)現(xiàn)點(diǎn)擊事件

⑦設(shè)置適配器



7, RecyclerView多布局一:list+banner

① RecyclerView基本使用

②定義類型常量

③重寫方法getItemViewType()根據(jù)位置返回不同類型

④重寫oncreateViewHolder()根據(jù)不同類型加載不同的布局

⑤重寫onBindViewHolder()根據(jù)不用類型加載不同數(shù)據(jù)


8, RecyclerView多布局二:奇數(shù)位置左圖右文字+偶數(shù)位置左文字右圖片

① RecyclerView基本使用(看6)

②定義類型常量

③重寫方法getItemViewType()根據(jù)位置返回不同類型

④重寫oncreateViewHolder()根據(jù)不同類型加載不同的布局

⑤重寫onBindViewHolder()根據(jù)不用類型加載不同數(shù)據(jù)

注意:沒(méi)有7中注意


9. RecyclerView通過(guò)接口回調(diào)實(shí)現(xiàn)點(diǎn)擊事件

①在adapter定義一個(gè)內(nèi)部接口,內(nèi)部接口定義一個(gè)方法,方法參數(shù)是我們需要返回值的;

②在adapter定義接口變量,并設(shè)置set方法

③在onBindVIewholder()中,給條目做一個(gè)點(diǎn)擊事件

④在fragment或者activity中,使用adapter對(duì)象調(diào)用點(diǎn)擊事件即可


10, RecyclerView添加刷新

①添加依賴

②在布局中添加刷新的控件并找控件

③給刷新控件添加加載更多、下拉刷細(xì)膩添加監(jiān)聽,監(jiān)聽中寫具體代碼

④刷新完畢列表,關(guān)閉SmartRefreshLayout頭和腳。



四、fragment

1. 靜態(tài)添加fragment

①創(chuàng)建一個(gè)fragment

②創(chuàng)建布局,把①中的fragment放到布局中

注意:

①必須要有id,否則:Caused by: java.lang.IllegalArgumentException: Binary XML file line #9: Must specify unique android:id, android:tag, or have a parent with an id for com.anfly.fragmentr.AFragment

②布局中必須添加屬性name,值該fragment全類名


2. 動(dòng)態(tài)添加fragment

//獲取碎片管理器

FragmentManager fm=getSupportFragmentManager();

//開啟事務(wù)

FragmentTransaction fragmentTransaction=fm.beginTransaction();

//獲取fragment對(duì)象

AFragment aFragment=newAFragment();

//替換容器中內(nèi)容

fragmentTransaction.replace(R.id.fl_container,aFragment);

//提交事務(wù)fragmentTransaction.commit();


3. Transaction常用方法

①add

②remove

③replace

④hide

⑤show

⑥attach

⑦detach

⑧commit


4. fragment生命周期

①onAttach()

②onCreate()

③onCreateView()

④onActivityCreated()

⑤onStart()

⑥onResume()

⑦onPause()

⑧onStop()

⑨onDestroyView()

⑩onDestroy()

?onDetach()


5. fragment傳遞數(shù)據(jù)到activity

①獲取activity對(duì)象,直接調(diào)用方法

MainActivity activity = (MainActivity) getActivity();activity.getMsgFromFramgent("我是來(lái)自fragment的數(shù)據(jù)");

②接口回調(diào)傳遞數(shù)據(jù)

Java接口與接口回調(diào)在Android中的使用

③通過(guò)fragment的有參構(gòu)造傳數(shù)據(jù)(不推薦)


6. activity傳遞數(shù)據(jù)到fragment

①通過(guò)bundle方式傳值

activity中:

AFragment aFragment=newAFragment();

Bundle bundle=newBundle();bundle.putString("a","我是來(lái)自activity的數(shù)據(jù)");

aFragment.setArguments(bundle);

fragment中:

Bundle bundle=getArguments();

String a=bundle.getString("a");


7. fragment與fragment之間傳遞數(shù)據(jù)

①通過(guò)構(gòu)造方式傳值(不推薦)

②通過(guò)FragmentManager找到對(duì)應(yīng)Id或者Tag的Framgment,然后獲取里面的數(shù)據(jù)或方法

③通過(guò)它們所在的Activity作為橋梁,可以使用getActivity()或者接口回調(diào),達(dá)到獲取另一個(gè)Fragment數(shù)據(jù)的目的.


8. RadioGroup底部導(dǎo)航結(jié)合Fragmentr切換


五、ViewPager+tablayout

1. ViewPager結(jié)合view實(shí)現(xiàn)導(dǎo)航

①創(chuàng)建布局找控件

②獲取數(shù)據(jù)集合

創(chuàng)建適配器:getCount()isViewFromObject()? instantiateItem()destroyItem()

④設(shè)置適配器


2. Viewpager結(jié)合Fragment實(shí)現(xiàn)導(dǎo)航

①創(chuàng)建布局找控件

②獲取fragment的集合fragments

創(chuàng)建適配器:FragmentStatePagerAdapter和FragmentPagerAdapter區(qū)別以及內(nèi)部方法

④設(shè)置適配器


3. Banner開源框架

官方

banner.setBannerStyle(BannerConfig.NUM_INDICATOR_TITLE)

//設(shè)置風(fēng)格.setImages(images)

//設(shè)置圖片集合.setBannerAnimation(Transformer.DepthPage)

//設(shè)置動(dòng)畫.setBannerTitles(titles)

//直接添加無(wú)效,必須設(shè)置BannerStyle.setImageLoader(newGlideImageLoader())

//圖片加載器.start();


4, Tablayout

①屬性

TVF

①創(chuàng)建布局找控件:TV

②創(chuàng)建兩個(gè)集合:fragments和titles

③創(chuàng)建適配器:四個(gè)方法(包含一個(gè)構(gòu)造)

④設(shè)置適配器

⑤TV結(jié)合:tab.setupWithViewPager(vp);

⑥設(shè)置圖片選擇器tab.getTabAt(0).setIcon()


```

①創(chuàng)建布局找控件:TV

②創(chuàng)建兩個(gè)集合:fragments和titles

③創(chuàng)建適配器:四個(gè)方法(包含一個(gè)構(gòu)造)

④設(shè)置適配器

⑤TV結(jié)合:tab.setupWithViewPager(vp);

⑥設(shè)置圖片選擇器tab.getTabAt(0).setIcon()

```


6. TVF涉及到的懶加載


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 二級(jí)列表(ExpandableListView) ①創(chuàng)建布局,找控件 ②獲取數(shù)據(jù):死數(shù)據(jù)、網(wǎng)絡(luò)數(shù)據(jù) ③創(chuàng)建適配器:...
    俗野_9628閱讀 263評(píng)論 0 0
  • 1.ExpandableListView (二級(jí)列表) ①創(chuàng)建布局 找控件②獲取數(shù)據(jù) (死數(shù)據(jù) ,網(wǎng)絡(luò)數(shù)據(jù))③創(chuàng)建...
    傾都幽夢(mèng)閱讀 417評(píng)論 0 0
  • 前言 ①方法:思路+案例、預(yù)習(xí)思路②補(bǔ)充知識(shí)點(diǎn):debug、代碼規(guī)范、約束布局③學(xué)生講課:三四節(jié)課學(xué)生講課(學(xué)委-...
    Anwfly閱讀 1,089評(píng)論 0 6
  • 一 二級(jí)列表(ExpandableListView) 1.1 死數(shù)據(jù)步驟: ①創(chuàng)建布局找控件②數(shù)據(jù)源(兩個(gè)集合:g...
    Brilliancess閱讀 648評(píng)論 0 5
  • 2017年最后一個(gè)月12月,過(guò)的很快,已經(jīng)過(guò)完,整個(gè)2017年也結(jié)束了,這個(gè)月參加了五期行動(dòng)營(yíng),感覺(jué)過(guò)的比較懶散,...
    小鵬strive閱讀 422評(píng)論 7 9

友情鏈接更多精彩內(nèi)容