Java 类android.widget.AbsListView 实例源码
项目:weex-uikit
文件:WXSwipeLayout.java
/**
* Whether child view can scroll up
* @return
*/
public boolean canChildScrollUp() {
if (mTargetView == null) {
return false;
}
if (Build.VERSION.SDK_INT < 14) {
if (mTargetView instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mTargetView;
return absListView.getChildCount() > 0
&& (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0)
.getTop() < absListView.getPaddingTop());
} else {
return ViewCompat.canScrollVertically(mTargetView, -1) || mTargetView.getScrollY() > 0;
}
} else {
return ViewCompat.canScrollVertically(mTargetView, -1);
}
}
项目:cardinalsSample
文件:LoadListView.java
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.d("onScrollStateChanged", "totalItemCount = " + totalItemCount +
" lastVisibleItem = " + lastVisibleItem + " scrollState = " + scrollState);
if (totalItemCount + getHeaderViewsCount() + getFooterViewsCount() == lastVisibleItem && scrollState == SCROLL_STATE_IDLE) {
if (!isLoading) {
isLoading = true;
footer.findViewById(R.id.load_layout).setVisibility(View.VISIBLE);
// 加载更多
if (iLoadListener != null && !isLoadFinish) {
iLoadListener.onLoad();
} else {
//所有内容加载完毕
loadComplete(true);
}
}
}
}
项目:SliderStatusBar
文件:ViewHolder.java
/**
* 隐藏或展示Item
*
* @param visible
*/
public void setItemVisible(boolean visible) {
if (null != itemView) {
if (visible) {
if (null != itemView.getLayoutParams()) {
itemView.getLayoutParams().width = AbsListView.LayoutParams.MATCH_PARENT;
itemView.getLayoutParams().height = AbsListView.LayoutParams.WRAP_CONTENT;
} else {
itemView.setLayoutParams(new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.WRAP_CONTENT));
}
itemView.setVisibility(View.VISIBLE);
} else {
if (null != itemView.getLayoutParams()) {
itemView.getLayoutParams().width = -1;
itemView.getLayoutParams().height = 1;
} else {
itemView.setLayoutParams(new AbsListView.LayoutParams(-1, 1));
}
itemView.setVisibility(View.GONE);
}
}
}
项目:DaiGo
文件:PullRefreshLayout.java
public boolean canChildScrollDown() {
if (android.os.Build.VERSION.SDK_INT < 14) {
if (mTarget instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mTarget;
View lastChild = absListView.getChildAt(absListView.getChildCount() - 1);
if (lastChild != null) {
return (absListView.getLastVisiblePosition() == (absListView.getCount() - 1))
&& lastChild.getBottom() > absListView.getPaddingBottom();
} else {
return false;
}
} else {
return mTarget.getHeight() - mTarget.getScrollY() > 0;
}
} else {
return ViewCompat.canScrollVertically(mTarget, 1);
}
}
项目:SmoothRefreshLayout
文件:ScrollCompat.java
public static boolean canChildScrollUp(View view) {
if (Build.VERSION.SDK_INT < 14) {
if (view instanceof AbsListView) {
final AbsListView absListView = (AbsListView) view;
return absListView.getChildCount() > 0
&& (absListView.getFirstVisiblePosition() > 0
|| absListView.getChildAt(0).getTop() < absListView.getPaddingTop());
} else {
return ViewCompat.canScrollVertically(view, -1)
|| view.getScrollY() > 0;
}
} else {
if (Build.VERSION.SDK_INT < 26)
return ViewCompat.canScrollVertically(view, -1);
else
return view.canScrollVertically(-1);
}
}
项目:BloomReader
文件:MainActivity.java
private void highlightItems(List<String> items) {
if (items == null)
return;
if (items.size() > 1) {
// Required for us to select all the new items. Gets reset to normal when one is selected.
mListView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
}
int minIndex = Integer.MAX_VALUE;
for (String path: items) {
BookOrShelf item = _bookCollection.getBookByPath(path);
int bookIndex = _bookCollection.indexOf(item);
if (bookIndex >= 0) {
mListView.setItemChecked(bookIndex, true);
minIndex = Math.min(minIndex, bookIndex);
}
}
if (minIndex < Integer.MAX_VALUE) {
mListView.smoothScrollToPosition(minIndex);
}
}
项目:boohee_v5.6
文件:PauseOnScrollListener.java
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case 0:
this.imageLoader.resume();
break;
case 1:
if (this.pauseOnScroll) {
this.imageLoader.pause();
break;
}
break;
case 2:
if (this.pauseOnFling) {
this.imageLoader.pause();
break;
}
break;
}
if (this.externalListener != null) {
this.externalListener.onScrollStateChanged(view, scrollState);
}
}
项目:GitHub
文件:ScrollingUtil.java
/**
* 用来判断是否可以下拉
*/
public static boolean canChildScrollUp(View mChildView) {
if (mChildView == null) {
return false;
}
if (Build.VERSION.SDK_INT < 14) {
if (mChildView instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mChildView;
return absListView.getChildCount() > 0
&& (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0)
.getTop() < absListView.getPaddingTop());
} else {
return ViewCompat.canScrollVertically(mChildView, -1) || mChildView.getScrollY() > 0;
}
} else {
return ViewCompat.canScrollVertically(mChildView, -1);
}
}
项目:SwipeFinishLayout
文件:SwipeFinishLayout.java
/**
* 递归遍历子view,记录所有的AbsListView, ScrollView
*
* @param absListViews
* @param parent
*/
private void getAllCanScrollView(List<AbsListView> absListViews,
List<ScrollView> scrollViews,
ViewGroup parent) {
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
View child = parent.getChildAt(i);
if (child instanceof AbsListView) {
absListViews.add((AbsListView) child);
} else if (child instanceof ScrollView) {
scrollViews.add((ScrollView) child);
} else {
if (child instanceof ViewGroup) {
// 递归遍历子View
getAllCanScrollView(absListViews, scrollViews, (ViewGroup) child);
}
}
}
}
项目:OverScrollableRecyclerView-Method1
文件:ScrollerUtil.java
private static boolean scrollToTop(View view) {
if (Build.VERSION.SDK_INT < 14) {
if (view instanceof AbsListView) {
final AbsListView absListView = (AbsListView) view;
return absListView.getChildCount() > 0
&& (absListView.getLastVisiblePosition() < absListView.getChildCount() - 1
|| absListView.getChildAt(absListView.getChildCount() - 1).getBottom() > absListView.getPaddingBottom());
} else {
return ViewCompat.canScrollVertically(view, 1) || view.getScrollY() < 0;
}
} else {
return ViewCompat.canScrollVertically(view, 1);
}
}
项目:SmartRefreshLayout
文件:RefreshContentWrapper.java
@Override
public void fling(int velocity) {
if (mScrollableView instanceof ScrollView) {
((ScrollView) mScrollableView).fling(velocity);
} else if (mScrollableView instanceof AbsListView) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
((AbsListView) mScrollableView).fling(velocity);
}
} else if (mScrollableView instanceof WebView) {
((WebView) mScrollableView).flingScroll(0, velocity);
} else if (mScrollableView instanceof RecyclerView) {
((RecyclerView) mScrollableView).fling(0, velocity);
} else if (mScrollableView instanceof NestedScrollView) {
((NestedScrollView) mScrollableView).fling(velocity);
}
}
项目:MyAnimeViewer
文件:LibraryMaterialFragment.java
@Override
public boolean onItemLongClick(AdapterView<?> view, View row,
int position, long id) {
if (mMode == null) {
getGridView().setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
getGridView().invalidateViews();
mMode = mContext.startSupportActionMode(this);
} else {
getGridView().setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
getGridView().invalidateViews();
mMode.finish();
}
return (true);
}
项目:godlibrary
文件:ListViewRefresh.java
/**
* 当滚动状态改变时回调
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (onScrollListener != null) {
onScrollListener.onScrollStateChanged(view, scrollState);
}
if (scrollState == SCROLL_STATE_IDLE || scrollState == SCROLL_STATE_FLING) {
// 判断当前是否已经到了底部
if (footerView != null)
if (isScrollToBottom && !isLoadingMore) {
isLoadingMore = true;
// 当前到底部
Log.i(TAG, "加载更多数据");
footerView.setPadding(0, 0, 0, 0);
listView.setSelection(listView.getCount());
if (mOnRefershListener != null) {
mOnRefershListener.onLoadingMore();
}
}
}
}
项目:TYT
文件:DynamicGridView.java
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
mCurrentFirstVisibleItem = firstVisibleItem;
mCurrentVisibleItemCount = visibleItemCount;
mPreviousFirstVisibleItem = (mPreviousFirstVisibleItem == -1) ? mCurrentFirstVisibleItem
: mPreviousFirstVisibleItem;
mPreviousVisibleItemCount = (mPreviousVisibleItemCount == -1) ? mCurrentVisibleItemCount
: mPreviousVisibleItemCount;
checkAndHandleFirstVisibleCellChange();
checkAndHandleLastVisibleCellChange();
mPreviousFirstVisibleItem = mCurrentFirstVisibleItem;
mPreviousVisibleItemCount = mCurrentVisibleItemCount;
if (isPostHoneycomb() && mWobbleInEditMode) {
updateWobbleState(visibleItemCount);
}
if (mUserScrollListener != null) {
mUserScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
}
项目:easyfilemanager
文件:MultiSelectionUtil.java
@Override
public final boolean onCreateActionMode(ActionMode actionMode, Menu menu) {
if (mListener.onCreateActionMode(actionMode, menu)) {
mActionMode = actionMode;
// Keep a reference to the existing OnItemClickListener so we can restore it
mOldItemClickListener = mListView.getOnItemClickListener();
// Set-up the ListView to emulate CHOICE_MODE_MULTIPLE_MODAL
mListView.setOnItemClickListener(this);
mListView.setChoiceMode(AbsListView.CHOICE_MODE_MULTIPLE);
mListView.removeCallbacks(mSetChoiceModeNoneRunnable);
// If there are some items to check, do it now
if (mItemsToCheck != null) {
for (Pair<Integer, Long> posAndId : mItemsToCheck) {
mListView.setItemChecked(posAndId.first, true);
// Notify the listener that the item has been checked
mListener.onItemCheckedStateChanged(mActionMode, posAndId.first,
posAndId.second, true);
}
}
return true;
}
return false;
}
项目:CustomAndroidOneSheeld
文件:PullToRefreshAdapterViewBase.java
public final void onScroll(final AbsListView view, final int firstVisibleItem, final int visibleItemCount,
final int totalItemCount) {
if (DEBUG) {
Log.d(LOG_TAG, "First Visible: " + firstVisibleItem + ". Visible Count: " + visibleItemCount
+ ". Total Items:" + totalItemCount);
}
/**
* Set whether the Last Item is Visible. lastVisibleItemIndex is a
* zero-based index, so we minus one totalItemCount to check
*/
if (null != mOnLastItemVisibleListener) {
mLastItemVisible = (totalItemCount > 0) && (firstVisibleItem + visibleItemCount >= totalItemCount - 1);
}
// If we're showing the indicator, check positions...
if (getShowIndicatorInternal()) {
updateIndicatorViewsVisibility();
}
// Finally call OnScrollListener if we have one
if (null != mOnScrollListener) {
mOnScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
}
项目:ShangHanLun
文件:ATableViewAdapter.java
private int getMeasuredRowHeight(ATableViewCell cell,
NSIndexPath indexPath, boolean cache) {
// closes #12, use table width instead cell since sometimes returns zero
// for WRAP_CONTENT height cells.
int widthMeasureSpec = MeasureSpec.makeMeasureSpec(
mTableView.getWidth(), MeasureSpec.EXACTLY);
int heightMeasureSpec = MeasureSpec.makeMeasureSpec(
AbsListView.LayoutParams.WRAP_CONTENT, MeasureSpec.EXACTLY);
cell.measure(widthMeasureSpec, heightMeasureSpec);
// add measured height to cache, so we don't have to recalculate every
// time.
int height = (int) (cell.getMeasuredHeight() / cell.getResources()
.getDisplayMetrics().density);
if (cache) {
mRowsHeight.get(indexPath.getSection()).set(indexPath.getRow(),
height);
}
return height;
}
项目:android_ui
文件:ScrollableWrapper.java
/**
* Wraps the given <var>scrollableView</var> into scrollable wrapper implementation that best
* suits to the type of the given view.
*
* @param scrollableView The scrollable view to be wrapped into scrollable wrapper.
* @return New scrollable wrapper instance. See description of this class for supported wrappers.
*/
@SuppressWarnings("unchecked")
public static <V extends View> ScrollableWrapper<V> wrapScrollableView(@NonNull V scrollableView) {
if (scrollableView instanceof AbsListView) {
return new AbsListViewWrapper((AbsListView) scrollableView);
} else if (scrollableView instanceof RecyclerView) {
return new RecyclerViewWrapper((RecyclerView) scrollableView);
} else if (scrollableView instanceof ScrollView) {
return new ScrollViewWrapper((ScrollView) scrollableView);
} else if (scrollableView instanceof HorizontalScrollView) {
return new HorizontalScrollViewWrapper((HorizontalScrollView) scrollableView);
} else if (scrollableView instanceof ViewPager) {
return new ViewPagerWrapper((ViewPager) scrollableView);
} else if (scrollableView instanceof WebView) {
return new WebViewWrapper((WebView) scrollableView);
}
return new ViewWrapper(scrollableView);
}
项目:Fahrplan
文件:SearchResultScrollListener.java
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if(loading) {
if(totalItemCount > previousTotal) {
loading = false;
previousTotal = totalItemCount;
currentPage++;
}
}
if(!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) {
query.setPage(currentPage);
new ConnectionSearchTask(context).execute(query);
loading = true;
}
}
项目:aos-Video
文件:AutoScraperActivity.java
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_FLING) {
// User fling is always preceded by a touch scroll
if (mPreviousScrollState == SCROLL_STATE_TOUCH_SCROLL) {
mMyScrollState = MY_SCROLL_STATE_USER;
}
else {
// Fling state is due to a call to smoothScroll()
mMyScrollState = MY_SCROLL_STATE_AUTO;
}
}
else if (scrollState == SCROLL_STATE_TOUCH_SCROLL) {
// Touch scroll is always done by the user
mMyScrollState = MY_SCROLL_STATE_USER;
}
else {
mMyScrollState = MY_SCROLL_STATE_IDLE;
}
mPreviousScrollState = scrollState;
}
项目:Multi-SwipeBackLayout
文件:SwipeBackLayout.java
/**
* Find out the scrollable child view
* 这里添加了常用的一些可滑动类,特殊类需要添加
*
* @param target targetView
*/
private void findScrollView(ViewGroup target) {
final int count = target.getChildCount();
if (count > 0) {
for (int i = 0; i < count; i++) {
final View child = target.getChildAt(i);
if (child instanceof AbsListView
|| isInstanceOfClass(child, ScrollView.class.getName())
|| isInstanceOfClass(child, NestedScrollView.class.getName())
|| isInstanceOfClass(child, RecyclerView.class.getName())
|| child instanceof HorizontalScrollView
|| child instanceof ViewPager
|| child instanceof WebView) {
mScrollChild = child;
break;
} else if (child instanceof ViewGroup) {
findScrollView((ViewGroup) child);
}
}
}
if (mScrollChild == null) mScrollChild = target;
}
项目:ZhaZhaShop
文件:SuperSwipeRefreshLayout.java
/**
* 判断目标View是否滑动到顶部-还能否继续滑动
*
* @return
*/
public boolean isChildScrollToTop() {
if (Build.VERSION.SDK_INT < 14) {
if (mTarget instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mTarget;
return !(absListView.getChildCount() > 0 && (absListView
.getFirstVisiblePosition() > 0 || absListView
.getChildAt(0).getTop() < absListView.getPaddingTop()));
} else {
return !(mTarget.getScrollY() > 0);
}
} else {
return !ViewCompat.canScrollVertically(mTarget, -1);
}
}
项目:HutHelper
文件:SyllabusItemActivity.java
@Override
public View getView(final int position, final View convertView, ViewGroup parent) {
final Button img = new Button(context);
int width = ScreenUtils.getScreenWidth(context) - DensityUtils.dp2px(context, 45);// 获取屏幕宽度
int height = 0;
width = width / 5;// 对当前的列数进行设置imgView的宽度
height = width * 5 / 6;
if (!weeklist[position]) {
img.setBackgroundResource(R.color.new_grty);
} else {
img.setBackgroundResource(R.color.colorPrimary);
}
img.setText(String.valueOf(position + 1));
img.setTextColor(Color.WHITE);
AbsListView.LayoutParams layout = new AbsListView.LayoutParams(width, height);
img.setLayoutParams(layout);
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (type == SHOW_COURSE)
return;
if (weeklist[position]) {
img.setBackgroundResource(R.color.new_grty);
weeklist[position] = false;
} else if (!weeklist[position]) {
img.setBackgroundResource(R.color.colorPrimary);
weeklist[position] = true;
}
}
});
return img;
}
项目:godlibrary
文件:ListViewRefresh.java
/**
* 当滚动时调用
*
* @param firstVisibleItem 当前屏幕显示在顶部的item的position
* @param visibleItemCount 当前屏幕显示了多少个条目的总数
* @param totalItemCount ListView的总条目的总数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
if (onScrollListener != null) {
onScrollListener.onScroll(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
firstVisibleItemPosition = firstVisibleItem;
if (listView.getLastVisiblePosition() == (totalItemCount - 1)) {
isScrollToBottom = true;
} else {
isScrollToBottom = false;
}
}
项目:RefreshLoadLayout
文件:RefreshLoadLayout.java
@Override
public void requestDisallowInterceptTouchEvent(boolean b) {
// if this is a List < L or another view that doesn't support nested
// scrolling, ignore this request so that the vertical scroll event
// isn't stolen
if ((android.os.Build.VERSION.SDK_INT < 21 && mTarget instanceof AbsListView)
|| (mTarget != null && !ViewCompat.isNestedScrollingEnabled(mTarget))) {
// Nope.
} else {
super.requestDisallowInterceptTouchEvent(b);
}
}
项目:MaterialDesignDemo
文件:TransparentToolbarActivity.java
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
View childAt = view.getChildAt(0);
if (childAt == null)
return;
int scrollY = firstVisibleItem * childAt.getHeight() - childAt.getTop();
if (scrollY <= (mScreenHeight / 3f)) {
float alpha = 1f - (scrollY / (mScreenHeight / 3f));
Log.e("CSDN_LQR", "scrollY = " + scrollY);
Log.e("CSDN_LQR", "alpha = " + alpha);
mToolbar.setAlpha(alpha);
}
}
项目:GongXianSheng
文件:SwipeToLoadLayout.java
/**
* Whether it is possible for the child view of this layout to
* scroll down. Override this if the child view is a custom view.
*
* @return
*/
protected boolean canChildScrollDown() {
if (android.os.Build.VERSION.SDK_INT < 14) {
if (mTargetView instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mTargetView;
return absListView.getChildCount() > 0
&& (absListView.getLastVisiblePosition() < absListView.getChildCount() - 1
|| absListView.getChildAt(absListView.getChildCount() - 1).getBottom() > absListView.getPaddingBottom());
} else {
return ViewCompat.canScrollVertically(mTargetView, 1) || mTargetView.getScrollY() < 0;
}
} else {
return ViewCompat.canScrollVertically(mTargetView, 1);
}
}
项目:letv
文件:PageCardAdapter.java
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == 0) {
this.mIsScroll = false;
notifyDataSetChanged();
} else if (scrollState == 1) {
this.mIsScroll = true;
} else if (scrollState == 2) {
this.mIsScroll = true;
}
}
项目:boohee_v5.6
文件:SearchFoodActivity.java
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (this.isQuickSearch) {
KeyBoardUtils.closeAll(this.ctx);
}
if (scrollState == 0 && this.mTotalcount == this.mLastindex && this.mPage <= 10 && this
.mPage > this.mCurrentPage) {
this.mCurrentPage = this.mPage;
loadData(this.mQueryString);
}
}
项目:custode
文件:ContactsPickerActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_contacts_picker);
listView = (ListView) findViewById(R.id.list_view);
listView.setOnItemClickListener(this);
listView.setChoiceMode(AbsListView.CHOICE_MODE_NONE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED)
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, 0);
else
loadData();
}
项目:AssistantBySDK
文件:LingjuSwipeRefreshLayout.java
/**
* @return Whether it is possible for the child view of this layout to
* scroll up. Override this if the child view is a custom view.
*/
public boolean canChildScrollUp() {
if (android.os.Build.VERSION.SDK_INT < 14) {
if (mTarget instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mTarget;
return absListView.getChildCount() > 0
&& (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0)
.getTop() < absListView.getPaddingTop());
} else {
return ViewCompat.canScrollVertically(mTarget, -1) || mTarget.getScrollY() > 0;
}
} else {
return ViewCompat.canScrollVertically(mTarget, -1);
}
}
项目:boohee_v5.6
文件:ScrollingTabContainerView.java
private TabView createTabView(Tab tab, boolean forAdapter) {
TabView tabView = new TabView(getContext(), tab, forAdapter);
if (forAdapter) {
tabView.setBackgroundDrawable(null);
tabView.setLayoutParams(new AbsListView.LayoutParams(-1, this.mContentHeight));
} else {
tabView.setFocusable(true);
if (this.mTabClickListener == null) {
this.mTabClickListener = new TabClickListener();
}
tabView.setOnClickListener(this.mTabClickListener);
}
return tabView;
}
项目:AssistantBySDK
文件:DayPickerView.java
/**
* Updates the title and selected month if the view has moved to a new
* month.
*/
@Override
public void onScroll(
AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
MonthView child = (MonthView) view.getChildAt(0);
if (child == null) {
return;
}
// Figure out where we are
long currScroll = view.getFirstVisiblePosition() * child.getHeight() - child.getBottom();
mPreviousScrollPosition = currScroll;
mPreviousScrollState = mCurrentScrollState;
}
项目:CustomAndroidOneSheeld
文件:QuickReturnHeaderHelper.java
private void createListView() {
root = (FrameLayout) inflater.inflate(R.layout.qrh__listview_container,
null);
root.addView(content);
listView.getViewTreeObserver().addOnGlobalLayoutListener(this);
ListViewScrollObserver observer = new ListViewScrollObserver(listView);
// listView.setOnScrollListener(this);
observer.setOnScrollUpAndDownListener(new OnListViewScrollListener() {
@Override
public void onScrollUpDownChanged(int delta, int scrollPosition,
boolean exact) {
onNewScroll(delta);
snap(headerTop == scrollPosition);
}
@Override
public void onScrollIdle() {
QuickReturnHeaderHelper.this.onScrollIdle();
}
});
root.addView(realHeader, realHeaderLayoutParams);
dummyHeader = new View(context);
AbsListView.LayoutParams params = new AbsListView.LayoutParams(
LayoutParams.MATCH_PARENT, headerHeight);
dummyHeader.setLayoutParams(params);
listView.addHeaderView(dummyHeader);
}
项目:goRefresh
文件:ScrollingUtil.java
public static boolean isAbsListViewToBottom(AbsListView absListView) {
if (absListView != null && absListView.getAdapter() != null && absListView.getChildCount() > 0 && absListView.getLastVisiblePosition() == absListView.getAdapter().getCount() - 1) {
View lastChild = absListView.getChildAt(absListView.getChildCount() - 1);
return lastChild.getBottom() >= absListView.getMeasuredHeight();
//return true;
}
return false;
}
项目:GitHub
文件:SwipeLayout.java
private boolean performAdapterViewItemLongClick() {
if (getOpenStatus() != Status.Close) return false;
ViewParent t = getParent();
if (t instanceof AdapterView) {
AdapterView view = (AdapterView) t;
int p = view.getPositionForView(SwipeLayout.this);
if (p == AdapterView.INVALID_POSITION) return false;
long vId = view.getItemIdAtPosition(p);
boolean handled = false;
try {
Method m = AbsListView.class.getDeclaredMethod("performLongPress", View.class, int.class, long.class);
m.setAccessible(true);
handled = (boolean) m.invoke(view, SwipeLayout.this, p, vId);
} catch (Exception e) {
e.printStackTrace();
if (view.getOnItemLongClickListener() != null) {
handled = view.getOnItemLongClickListener().onItemLongClick(view, SwipeLayout.this, p, vId);
}
if (handled) {
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS);
}
}
return handled;
}
return false;
}
项目:QSRefreshLayout
文件:QSRefreshLayout.java
@Override
protected boolean canChildScrollUp() {
if (android.os.Build.VERSION.SDK_INT < 14) {
if (mTarget instanceof AbsListView) {
final AbsListView absListView = (AbsListView) mTarget;
return absListView.getChildCount() > 0
&& (absListView.getFirstVisiblePosition() > 0 || absListView.getChildAt(0)
.getTop() < absListView.getPaddingTop());
} else {
return ViewCompat.canScrollVertically(mTarget, -1) || mTarget.getScrollY() > 0;
}
} else {
return ViewCompat.canScrollVertically(mTarget, -1);
}
}
项目:GitHub
文件:ScrollingUtil.java
public static boolean isAbsListViewToTop(AbsListView absListView) {
if (absListView != null) {
int firstChildTop = 0;
if (absListView.getChildCount() > 0) {
// 如果AdapterView的子控件数量不为0,获取第一个子控件的top
firstChildTop = absListView.getChildAt(0).getTop() - absListView.getPaddingTop();
}
if (absListView.getFirstVisiblePosition() == 0 && firstChildTop == 0) {
return true;
}
}
return false;
}
项目:GitHub
文件:ScrollingUtil.java
public static boolean isAbsListViewToBottom(AbsListView absListView) {
if (absListView != null && absListView.getAdapter() != null && absListView.getChildCount() > 0 && absListView.getLastVisiblePosition() == absListView.getAdapter().getCount() - 1) {
View lastChild = absListView.getChildAt(absListView.getChildCount() - 1);
return lastChild.getBottom() <= absListView.getMeasuredHeight();
}
return false;
}
项目:chromium-for-android-56-debug-video
文件:AccessibilityTabModelListItem.java
/**
* This call is exposed for the benefit of the animators.
*
* @param height The height of the current view.
*/
public void setHeight(int height) {
AbsListView.LayoutParams params = (AbsListView.LayoutParams) getLayoutParams();
if (params == null) {
params = new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height);
} else {
if (params.height == height) return;
params.height = height;
}
setLayoutParams(params);
}