Home

Awesome

PopupListView

An android powerful listview,which item in listview can be click and popup show inner view under item view!

Example

Image text

Demo on Google play

You can try it out here Google Play

Compile library in Android Studio

In your build.gradle add the following code

dependencies {
    compile 'com.github.s8871404:PopupListView:1.0.1@aar'
}

How to use

To use the PopupListView, you need add following code in your main layout xml:

 <com.baobomb.popuplistview.PopupListView
    android:id="@+id/popupListView"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 </com.baobomb.popuplistview.PopupListView>

And you need a layout for listView item design by yourself, then a layout design by your self as the extend view which show after click list item

Set list in code

After set PopupListView at main layout and design two layout, one for list item another for inner view now it can be set in code and use it amazing! To set it:

It's need an arrayList to collect PopupView,the custom list item object by library

   ArrayList<PopupView> popupViews = new ArrayList<>;

Then collect all the popupviews design by yourself

   PopupView popupView = new PopupView(this, R.layout.popup_view_item) {
      @Override
      //Set list item's element in here
        public void setViewsElements(View view) {
           TextView textView = (TextView) view.findViewById(R.id.title);
           textView.setText("Popup View " + String.valueOf(p));
           }
      @Override
      //Set extendView's element in here
        public View setExtendView(View view) {
           View extendView;
             if (view == null) {
             extendView = LayoutInflater.from(getApplicationContext()).inflate(R.layout.extend_view, null);
             TextView innerText = (TextView) extendView.findViewById(R.id.innerText);
             innerText.setText("Inner View " + String.valueOf(p));
             }else {
             extendView = view;
             }
             return extendView;
             }
          };
      popupViews.add(popupView);

After you collect all the popup list item then set it to the PopupListView

    PopupListView popupListView = (PopupListView) findViewById(R.id.popupListView);
    

if you want to custom the listview's parent layout you can init it and set the custom view layout res id to it or just set it null then it will use the default layout,

    //isWithActionBar : default = false , if your app have an actionBar, set it true;
    //isWithStatusBar : default = true , if your app is set as full screen and status bar dismiss, set it false.
    popupListView.init(View customListBackground,Boolean isWithActionBar,Boolean isWithStatusBar); 
    popupListView.setItemViews(popupViews);
    

Then you can use it amazing!!

Control it

If you just click the item and it already extend When you want to minify it call following code

  if(popupListView.isZoomIn()){
    popupListView.zoomOut();
   }

Make it powerful

If it need to minify when user click back button just add the following code at your activity

  @Override
  public void onBackPressed() {
    if (popupListView.isItemZoomIn()) {
        popupListView.zoomOut();
    } else {
        super.onBackPressed();
    }
  }
  

License

A subclass of the Android ListView component that enables item click to extend.

Copyright 2015 CHEN WEI-LUNG

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.