public void RefreshTweetList(final Activity act, final View v, final TweetListType mode) { LinearLayout ll = (LinearLayout) v; ListView lv = (ListView) ll.findViewById(android.R.id.list); final List<Tweet> tmpTweets = new ArrayList<Tweet>(); final TweetListAdapter aa = new TweetListAdapter(act, R.layout.tweetlist_item, tmpTweets); getTweets(act, tmpTweets, aa, mode, PagingMode.OLDTWEETS); lv.setOnScrollListener( new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) {} @Override public void onScroll( AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (visibleItemCount != 0) { final int GUESS_WANT_MORE = 1; if (firstVisibleItem + visibleItemCount + 1 + GUESS_WANT_MORE > totalItemCount) { getTweets(act, tmpTweets, aa, mode, PagingMode.OLDTWEETS); } } } }); TextView tv = (TextView) ll.findViewById(android.R.id.empty); if (aa.getCount() > 0) { tv.setVisibility(View.GONE); } else { tv.setVisibility(View.VISIBLE); } lv.setAdapter(aa); }
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mListView = (ListView) mView.findViewById(R.id.lv); mListView.setOnScrollListener( new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { PullRightLayout.collapseAll(); } } @Override public void onScroll( AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {} }); mStartScanView = (TextView) mView.findViewById(R.id.tv_start_scan); mStartScanView.setBackgroundColor(ThemeManager.with(getActivity()).getCurrentColor()); mStartScanView.setOnClickListener(this); mPullLayout = (PullLayout) mView.findViewById(R.id.pull_layout); mPullLayout.addOnPullListener(this); if (mListener != null) { mPullLayout.addOnPullListener(mListener); mListener = null; } mIvScan = (ImageView) mView.findViewById(R.id.iv_scan); IntentFilter filter = new IntentFilter(ScanService.ACTION_SCAN_FINISH); LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, filter); }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ViewGroup view = (ViewGroup) inflater.inflate(layout, container, false); listView = (ListView) view.findViewById(R.id.com_facebook_picker_list_view); listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { onListItemClick((ListView) parent, v, position); } }); listView.setOnLongClickListener( new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { // We don't actually do anything differently on long-clicks, but setting the listener // enables the selector transition that we have for visual consistency with the // Facebook app's pickers. return false; } }); listView.setOnScrollListener(onScrollListener); activityCircle = (ProgressBar) view.findViewById(R.id.com_facebook_picker_activity_circle); setupViews(view); listView.setAdapter(adapter); return view; }
@Override public void onDetach() { super.onDetach(); listView.setOnScrollListener(null); listView.setAdapter(null); loadingStrategy.detach(); sessionTracker.stopTracking(); }
/** * Initializing the QuickScroll, this function must be called. * * <p> * * @param type the QuickScroll type. Available inputs: <b>QuickScroll.TYPE_POPUP</b> or * <b>QuickScroll.TYPE_INDICATOR</b> * @param list the ListView * @param scrollable the adapter, must implement Scrollable interface */ public void init( final int type, final ListView list, final Scrollable scrollable, final int style) { if (mInitialized) return; mType = type; mList = list; mScrollable = scrollable; mGroupPosition = -1; mFadeIn = new AlphaAnimation(.0f, 1.0f); mFadeIn.setFillAfter(true); mFadeOut = new AlphaAnimation(1.0f, .0f); mFadeOut.setFillAfter(true); mFadeOut.setAnimationListener( new AnimationListener() { public void onAnimationStart(Animation animation) {} public void onAnimationRepeat(Animation animation) {} public void onAnimationEnd(Animation animation) { mScrolling = false; } }); mScrolling = false; final float density = getResources().getDisplayMetrics().density; mList.setOnTouchListener( new OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { if (mScrolling && (event.getAction() == MotionEvent.ACTION_MOVE || event.getAction() == MotionEvent.ACTION_DOWN)) { return true; } return false; } }); final RelativeLayout.LayoutParams containerparams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); final RelativeLayout container = new RelativeLayout(getContext()); container.setBackgroundColor(Color.TRANSPARENT); containerparams.addRule(RelativeLayout.ALIGN_TOP, getId()); containerparams.addRule(RelativeLayout.ALIGN_BOTTOM, getId()); container.setLayoutParams(containerparams); if (mType == TYPE_POPUP || mType == TYPE_POPUP_WITH_HANDLE) { mScrollIndicatorText = new TextView(getContext()); mScrollIndicatorText.setTextColor(Color.WHITE); mScrollIndicatorText.setVisibility(View.INVISIBLE); mScrollIndicatorText.setGravity(Gravity.CENTER); final RelativeLayout.LayoutParams popupparams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); popupparams.addRule(RelativeLayout.CENTER_IN_PARENT); mScrollIndicatorText.setLayoutParams(popupparams); setPopupColor(GREY_LIGHT, GREY_DARK, 1, Color.WHITE, 1); setTextPadding(mTextPadding, mTextPadding, mTextPadding, mTextPadding); container.addView(mScrollIndicatorText); } else if (mType == TYPE_INDICATOR || mType == TYPE_INDICATOR_WITH_HANDLE) { mScrollIndicator = createPin(); mScrollIndicatorText = (TextView) mScrollIndicator.findViewById(ID_PIN_TEXT); (mScrollIndicator.findViewById(ID_PIN)).getLayoutParams().width = 25; container.addView(mScrollIndicator); } // setting scrollbar width getLayoutParams().width = (int) (30 * density); mScrollIndicatorText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 32); // scrollbar setup if (style != STYLE_NONE) { final RelativeLayout layout = new RelativeLayout(getContext()); final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); params.addRule(RelativeLayout.ALIGN_LEFT, getId()); params.addRule(RelativeLayout.ALIGN_TOP, getId()); params.addRule(RelativeLayout.ALIGN_RIGHT, getId()); params.addRule(RelativeLayout.ALIGN_BOTTOM, getId()); layout.setLayoutParams(params); mScrollbar = new View(getContext()); mScrollbar.setBackgroundColor(GREY_SCROLLBAR); final RelativeLayout.LayoutParams scrollbarparams = new RelativeLayout.LayoutParams(1, LayoutParams.MATCH_PARENT); scrollbarparams.addRule(RelativeLayout.CENTER_HORIZONTAL); scrollbarparams.topMargin = mScrollbarMargin; scrollbarparams.bottomMargin = mScrollbarMargin; mScrollbar.setLayoutParams(scrollbarparams); layout.addView(mScrollbar); ((ViewGroup) mList.getParent()).addView(layout); // creating the handlebar if (mType == TYPE_INDICATOR_WITH_HANDLE || mType == TYPE_POPUP_WITH_HANDLE) { mHandlebar = new View(getContext()); setHandlebarColor(BLUE_LIGHT, BLUE_LIGHT, BLUE_LIGHT_SEMITRANSPARENT); final RelativeLayout.LayoutParams handleparams = new RelativeLayout.LayoutParams((int) (12 * density), (int) (36 * density)); mHandlebar.setLayoutParams(handleparams); ((RelativeLayout.LayoutParams) mHandlebar.getLayoutParams()) .addRule(RelativeLayout.CENTER_HORIZONTAL); layout.addView(mHandlebar); mList.setOnScrollListener( new OnScrollListener() { public void onScrollStateChanged(AbsListView view, int scrollState) {} @SuppressLint("NewApi") public void onScroll( AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { if (!mScrolling && totalItemCount - visibleItemCount > 0) { moveHandlebar( getHeight() * firstVisibleItem / (totalItemCount - visibleItemCount)); } } }); } } mInitialized = true; ((ViewGroup) mList.getParent()).addView(container); }