Android github XListView analysis (2-3), githubxlistview
Content
- Overview
- XListView UML diagram
Download github XListView Overview
We often see the "pull more" and "pull up and load" Effects of listview in the app. As shown in the following figure:
Figure 1 Common headers and Footer
(Left: three States on the top; Right: three States on the bottom)
Obviously, there are three statuses at the top and bottom of the drop-down list or top-up list. For example,
- For the "drop-down" operation, if you click "drop-down", the system will prompt "pull-down Update". If you continue the pull-down operation and do not release the operation, the system will change to "Release and refresh". The arrow will change during this period. Once released, "loading" is displayed ".
- For the "pull up" operation, the pull up operation is similar, but the prompt is slightly different. When sliding the listview to the bottom, you can see "View"
Therefore, there are six statuses at the top and bottom of the listview: "pull-down refresh", "Release refresh data", and "loading... "," Last Update time: "," view more ", and" Release and load more ".
You can change the top and bottom statuses when pulling the listview. In this way, you must define at least three classes: Custom listview, header, and footer.
In addition, if listview needs to know the user's pull height, it will reserve a height in advance. For example, if it is only "drop-down", the system will prompt "pull-down refresh". If it exceeds the pre-height, the system prompts "Release and refresh". At this time, you need to change the direction of the arrow.
To enable your Activity or Fragment to use the encapsulated listview, you also need to define an interface. In this way, the encapsulated listview can be used as long as this interface is inherited.
XListView UML diagram
Figure 2 XListView UML diagram
- CustomXListViewClass, which inheritsAndroid. widget. AbsListView. OnScrollListenerAndAndroid. widget. ListView;
- Top of the custom listviewXListViewHeaderAnd bottomXListViewFooter, They all inheritAndroid. widget. LinearLayout;
- Custom XListView InterfaceIXListViewListenterThere are only two methods:OnRefreshAndOnLoadMoreThis interface is very important. In the future, if you use any Activity or Fragment of the XListView control to inherit this interface and implement the two methods, the "pull-down Update" and "pull-up loading" functions of listview can be implemented. That is to say, if you pull down, it will call your Activity and FragmentOverride OnRefreshMethod.OverrideOnLoadMoreMethod;
- Obviously, the XListView class needs to be combinedXListViewHeader,XListViewFooterAndIXListViewListenter.
After reading the structure, you can look at the public method to get a rough idea of the control.
Android: Android ListView and github XListView (1-3)