android - How can i hide the first item when click the second item in ListView using Expandanimation? -
i using develop listview acts expandablelistview works fine 1 problem wil there when click second item first item not close
i using animation class like
expandanimation.java
public expandanimation(view view, int duration) { setduration(duration); manimatedview = view; mviewlayoutparams = (layoutparams) view.getlayoutparams(); // decide show or hide view misvisibleafter = (view.getvisibility() == view.visible); mmarginstart = mviewlayoutparams.bottommargin; mmarginend = (mmarginstart == 0 ? (0- view.getheight()) : 0); view.setvisibility(view.visible); } @override protected void applytransformation(float interpolatedtime, transformation t) { super.applytransformation(interpolatedtime, t); if (interpolatedtime < 1.0f) { // calculating new bottom margin, , setting mviewlayoutparams.bottommargin = mmarginstart + (int) ((mmarginend - mmarginstart) * interpolatedtime); // invalidating layout, making seeing changes made manimatedview.requestlayout(); // making sure didn't run ending before (it happens!) } else if (!mwasendedalready) { mviewlayoutparams.bottommargin = mmarginend; manimatedview.requestlayout(); if (misvisibleafter) { manimatedview.setvisibility(view.gone); } mwasendedalready = true; } }
expandanimationdemo.java like
public class expandanimationdemo extends activity { // boolean sameitemclicked=false; boolean boolitem = false; view previoustoolbar; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); //to change body of overridden methods use file | settings | file templates. setcontentview(r.layout.main); listview list = (listview)findviewbyid(r.id.udinilist); // creating list adapter , populating list arrayadapter<string> listadapter = new customlistadapter(this, r.layout.list_item); (int i=0; i<20;i++) listadapter.add("udini"+i); list.setadapter(listadapter); // creating item click listener, open/close our toolbar each item list.setonitemclicklistener(new adapterview.onitemclicklistener() { @suppresswarnings("unused") public void onitemclick(adapterview<?> parent, final view view, int position, long id) { view toolbar = view.findviewbyid(r.id.toolbar); // creating expand animation item expandanimation expandani = new expandanimation(toolbar, 500); // start animation on toolbar toolbar.startanimation(expandani); } }); } /** * simple implementation of list adapter. */ class customlistadapter extends arrayadapter<string> { public customlistadapter(context context, int textviewresourceid) { super(context, textviewresourceid); } @override public view getview(int position, view convertview, viewgroup parent) { if (convertview == null) { convertview = getlayoutinflater().inflate(r.layout.list_item, null); } ((textview)convertview.findviewbyid(r.id.title)).settext(getitem(position)); // resets toolbar closed view toolbar = convertview.findviewbyid(r.id.toolbar); ((linearlayout.layoutparams) toolbar.getlayoutparams()).bottommargin = -50; toolbar.setvisibility(view.gone); return convertview; } } }
myxml file list_item.xml
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <textview android:id="@+id/title" android:padding="20dip" android:focusable="false" android:focusableintouchmode="false" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <!--***********************--> <!--*** toolbar layout ****--> <!--***********************--> <linearlayout android:id="@+id/toolbar" android:layout_marginbottom="-50dip" android:visibility="gone" android:layout_height="50dip" android:layout_width="fill_parent"> <button android:id="@+id/dosomething1" android:layout_height="50dip" android:focusable="false" android:focusableintouchmode="false" android:layout_width="wrap_content" android:text="harder"/> <button android:id="@+id/dosomething2" android:layout_height="50dip" android:focusable="false" android:focusableintouchmode="false" android:layout_width="wrap_content" android:text="better"/> <button android:id="@+id/dosomething3" android:layout_height="50dip" android:layout_width="wrap_content" android:focusable="false" android:focusableintouchmode="false" android:text="faster"/> <button android:id="@+id/dosomething4" android:layout_height="50dip" android:layout_width="wrap_content" android:focusable="false" android:focusableintouchmode="false" android:text="stronger"/> </linearlayout> </linearlayout>
this developed based on link https://github.com/udinic/smallexamples/tree/master/expandanimationexample
this works fine when select second item first item not close please guide how implement requirement advance
is there solutions plz gudide me
check following.
mexpandablelistview.setongroupexpandlistener(new ongroupexpandlistener() { @override public void ongroupexpand(int groupposition) { int len = menuadapter.getgroupcount(); (int = 0; < len; i++) { if (i != groupposition && menuadapter.getchildrencount(i) > 0) { mexpandablelistview.collapsegroup(i); } } } });
Comments
Post a Comment