public void update(final ArrayList<ArrayList<Lyrics>> results) { if (getView() == null) return; int index = megaListView.getFirstVisiblePosition(); View v = megaListView.getChildAt(0); int top = (v == null) ? 0 : (v.getTop() - megaListView.getPaddingTop()); lyricsArray = results; megaListView.setAdapter(new LocalAdapter(getActivity(), results, mTouchListener, megaListView)); megaListView.setEmptyView( ((ViewGroup) getView().findViewById(R.id.local_empty_database_textview).getParent())); getListView().setSelectionFromTop(index, top); setListShown(true); }
@Override public void onActivityCreated(Bundle onSavedInstanceState) { super.onActivityCreated(onSavedInstanceState); if (megaListView != null) { View fragmentView = getView(); TypedValue typedValue = new TypedValue(); getActivity().getTheme().resolveAttribute(android.R.attr.colorBackground, typedValue, true); if (fragmentView != null) fragmentView.setBackgroundColor(typedValue.data); megaListView.setDividerHeight(0); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) megaListView.setSelector(R.drawable.abc_list_selector_disabled_holo_dark); megaListView.setFastScrollEnabled(true); megaListView.setDrawSelectorOnTop(true); } }
public void setListShown(final boolean visible) { final Animation fadeIn = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_in); final Animation fadeOut = AnimationUtils.loadAnimation(getActivity(), android.R.anim.fade_out); Animation.AnimationListener listener = new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) {} @Override public void onAnimationEnd(Animation animation) { progressBar.setVisibility(visible ? View.GONE : View.VISIBLE); megaListView.setVisibility(visible ? View.VISIBLE : View.INVISIBLE); } @Override public void onAnimationRepeat(Animation animation) {} }; fadeIn.setAnimationListener(listener); fadeOut.setAnimationListener(listener); progressBar.startAnimation(visible ? fadeOut : fadeIn); megaListView.startAnimation(visible ? fadeIn : fadeOut); }
public ExpandableListAdapter getExpandableListAdapter() { return megaListView.getExpandableListAdapter(); }
@Override public void onViewCreated(View view, Bundle savedInstanceState) { final MainActivity mainActivity = ((MainActivity) this.getActivity()); super.onViewCreated(view, savedInstanceState); if (this.isHidden()) return; DrawerAdapter drawerAdapter = ((DrawerAdapter) ((ListView) mainActivity.findViewById(R.id.drawer_list)).getAdapter()); if (drawerAdapter.getSelectedItem() != 1) { drawerAdapter.setSelectedItem(1); drawerAdapter.notifyDataSetChanged(); } megaListView.setOnGroupClickListener( new ExpandableListView.OnGroupClickListener() { @Override public boolean onGroupClick( ExpandableListView parent, View v, int groupPosition, long id) { final ImageView indicator = (ImageView) v.findViewById(R.id.group_indicator); RotateAnimation anim; if (megaListView.isGroupExpanded(groupPosition)) { megaListView.collapseGroupWithAnimation(groupPosition); if (indicator != null) { anim = new RotateAnimation( 180f, 360f, indicator.getWidth() / 2, indicator.getHeight() / 2); anim.setInterpolator(new DecelerateInterpolator(3)); anim.setDuration(500); anim.setFillAfter(true); indicator.startAnimation(anim); } } else { megaListView.expandGroupWithAnimation(groupPosition); if (indicator != null) { anim = new RotateAnimation( 0f, 180f, indicator.getWidth() / 2, indicator.getHeight() / 2); anim.setInterpolator(new DecelerateInterpolator(2)); anim.setDuration(500); anim.setFillAfter(true); indicator.startAnimation(anim); } } return true; } }); megaListView.setOnChildClickListener( new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick( ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { if (mSwiping) { mSwiping = false; return false; } final MainActivity mainActivity = (MainActivity) getActivity(); megaListView.setOnChildClickListener(null); // prevents bug on double tap mainActivity.updateLyricsFragment( R.animator.slide_out_start, R.animator.slide_in_start, true, lyricsArray.get(groupPosition).get(childPosition)); return true; } }); this.isActiveFragment = true; new DBContentLister(this).execute(); }