日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android 固定底部 布局_Android系统列表控件

發布時間:2023/12/4 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android 固定底部 布局_Android系统列表控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在android系統控件中,有多個控件可以展示列表數據。

一、ListView

該組件是android中最常用的一個UI組件,用于實現在屏幕上顯示多個內容,以便于我們用手指進行滑動。

ListView控件以列表的形式展示具體內容,并且能夠根據數據的長度自適應顯示。如圖所示:

列表的顯示需要三個元素:

  • 1.ListVeiw:用來展示列表的View。
  • 2.適配器:用來把數據映射到ListView上的中介。Adapter
  • 3.數據:具體的將被映射的字符串,圖片,或者基本組件。

根據列表的適配器類型,列表分為三種:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter。

  • ArrayAdapter最為簡單,只能展示一行字,基本不用,或極少數時候使用。
  • SimpleAdapter有最好的擴充性,可以自定義出各種效果。
  • SimpleCursorAdapter可以認為是SimpleAdapter對數據庫的簡單結合,可以方面的把數據庫的內容以列表的形式展示出來。

在開發過程中,往往繼承使用BaseAdapter,自己來實現各種需要實現的效果和數據適配。繼承BaseAdapter類后,需要重寫如下幾個方法:

  • getCount: 一共有多少個item展示項
  • getItem(int position):獲取每一個展示項
  • getItemId(int position):獲取item的id
  • getView(int position, View convertView, ViewGroup parent):每一個在屏幕內展示的view視圖

因為涉及到自定義View視圖,因此往往會借助一個自定義的holder類來進行數據的刷新,事件的操作等。

數據更新

當數據源有更新時,需要重新設置適配器中的數據,同時調用適配器中的notifyDataSetChanged方法。

二、GridView

GridView 跟ListView 很類似,ListView 主要以列表形式顯示數據,GridView 則是以網格形式顯示數據。

GridView主要通過使用自定義BaseAdapter來適配數據,進而顯示到GridView中。使用步驟:

  • 1、準備數據源:通常是ArrayList形式。
    list = new ArrayList>();
  • 2、為數據源設置適配器
    MyAdapter adapter = new MyAdapter();
  • 3、設置適配器
    gridView.setAdapter(adapter);

與ListView相似,開發重點在如何自定義實現Adapter,以及如何實現交互。

三、RecyclerView

RecyclerView簡介

RecyclerView是support.v7包中的控件,可以說是ListView和GridView的增強升級版。

官方對RecyclerView的描述如中說到:A flexible view for providing a limited window into a large data set。

RecyclerView從2014年發布到現在已經很長時間了,使用已經相當普遍。

LayoutManager

使用上RecyclerView與Listview使用步驟基本相同,不同的是RecyclerView多了一個LayoutManager,翻譯為布局管理器。

RecyclerView有三個默認布局管理器,他們分別是:

  • LinearLayoutManager:線性管理器
  • GridLayoutManager:網格管理器
  • StaggeredGridLayoutManager:交錯式網格布局

三個布局管理器都支持橫向和縱向排列以及反向滑動。如果想把RecyclerView改為橫向滑動,也可以通過調用:

mLayoutManager.setOrientation(GridLayoutManager.HORIZONTAL);

監聽及點擊事件

RecyclerView不像ListView一樣提供item的點擊監聽,開發者需要自己實現,有兩種常用的方式:

  • 為item的view設置點擊事件
  • 通過recycler.addOnItemTouchListener監聽

動畫

recyclerview支持為item設置豐富的動畫效果,可以通過如下方式設置動畫:

recyclerView.setItemAnimator(new DefaultItemAnimator());

四、下拉刷新和上拉加載的原理

無論是ListView、GridView還是RecyclerView,在實際的開發中都會有很多列表場景的使用。更為常見的是各種應用中都會使用到下拉刷新,上拉加載或者底部加載等效果。

實現下拉刷新和上啦下載的原理:主要是通過監控控件的滑動來實現的。可以通過設置滑動監聽:

  • 獲取當前顯示的第一個item:如果滿足頭部條件,顯示下拉刷新控件,執行刷新操作。
  • 獲取當前屏幕顯示的最后一個item:如果滿足底部判斷條件,則加載新數據。

addHeaderView

可以為列表控件添加一個頭view,用來實現下拉頭部刷新控件的添加效果。

addFooterView

可以為列表控件添加一個底部的view,用來實現底部加載控件的效果。

SwipeRefreshLayout

在Android中提供了SwipeRefreshLayout控件,用于實現滑動刷新,使用控件可以檢測縱向滑動,顯示一個獨特的進度條,并在您的應用中觸發回調方法使用該控件時需要注意:

  • SwipeRefreshLayout只能包含一個子控件,可以是ListView或者是GridView。
  • SwipeRefreshLayout控件是Android的一個支持庫中的控件,需要引入支持庫然后進行使用。
    SwipeRefreshLayout能夠響應刷新手勢,當用戶做出滑動手勢時,系統會顯示進度指示器并調用應用的回調方法,具體實現是:
    • SwipeRefreshLayout.OnRefreshListener:實現該接口,系統會回調該接口
    • onRefresh:OnRefreshListener接口的刷新方法,系統會在刷新時回調該方法。
    • setRefreshing:數據刷新操作結束后,調用該方法,并設置為false,調整刷新控件的狀態。

五、列表控件事件

列表控件的交互是開發中非常重要的內容,涉及到很多控件的交互,效果的展示等。幾乎所有的交互都是通過事件來完成的。

  • OnItemClickListener:listview控件的條目點擊事件監聽器,該監聽器是一個接口,包含一個onItemClick方法。使用時可以通過列表控件的setOnItemClickListener方法設置回調。
  • OnScrollListener:列表控件的滑動事件監聽器,該監聽器同樣是一個接口,包含兩個方法,分別是:onScrollStateChanged和onScroll。列表控件有兩種狀態:停止狀態和滑動狀態,當狀態發生改變進行切換時,會調用該方法;當列表控件滑動時回,會調用onScroll方法。
  • OnScrollChangeListener:視圖的滑動狀態改變監聽器,該監聽器依然是一個接口,包含一個方法,onScrollChange。該接口的要求api版版是M,即23。

六、列表控件的常用優化方法

  • 利用好 convertView 來重用 View。ListView 的核心原理就是重用 View。ListView 中有一個回收器,Item 滑出界面的時候 View 會回收到這里,需要顯示新的 Item 的時候,就盡量重用回收器里面的 View。
  • 利用好 View Type,ListView 中有幾個類型的 Item,需要給每個類型創建不同的 View,這樣有利于 ListView 的回收。
  • ItemView 的 Layout 層次結構盡量簡單,不要嵌套太深或者太復雜。
  • 每個Item不要太高,特別是不要超過屏幕的高度。
  • 利用好滑動監聽器,當列表滑動時停止操作,比如:滑動時停止加載圖片,停下來再加載。
  • 使用RecycleView, ListView每次更新數據都要notifyDataSetChanged()不是特別友好,RecycleView 在性能和可定制性上都有很大的改善。
  • 善用Tag,Id等屬性和方法,綜合使用節省內存空間。
  • 處理好事件沖突,比如header,footer和item的事件有可能沖突的問題。

總結,列表控件的優化是一個綜合和系統的工作,在掌握常用的優化方法外,還需要結合自己的團隊的業務進行優化,列表的優化沒有終點,隨著功能的不斷迭代,系統的不斷升級,優化工作也會持續存在。

總結

以上是生活随笔為你收集整理的android 固定底部 布局_Android系统列表控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。