Tabnine Logo
IndexStickyViewAdapter
Code IndexAdd Tabnine to your IDE (free)

How to use
IndexStickyViewAdapter
in
cn.ittiger.indexlist.adapter

Best Java code snippets using cn.ittiger.indexlist.adapter.IndexStickyViewAdapter (Showing top 14 results out of 315)

  • Add the Codota plugin to your IDE and get smart completions
private void myMethod () {
List l =
  • Codota Iconnew ArrayList()
  • Codota Iconnew LinkedList()
  • Smart code suggestions by Tabnine
}
origin: huyongli/IndexStickyView

@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
  int position = parent.getChildAdapterPosition(view);
  IndexStickyViewAdapter adapter = (IndexStickyViewAdapter)parent.getAdapter();
  IndexStickyEntity entity = adapter.getItem(position);
  if(entity.getItemType() != ItemType.ITEM_TYPE_INDEX && position < (adapter.getItemCount() - 1)
      && adapter.getItem(position + 1).getItemType() != ItemType.ITEM_TYPE_INDEX) {
    outRect.set(0, 0, 0, mSize);
  }
}
origin: huyongli/IndexStickyView

/**
 * 刷新数据列表
 * @param count
 */
private void refresh(int count) {
  transferOriginalData();
  addAllIndexHeaderAdapterData();
  addAllIndexFooterAdapterData(count);
  IndexValueBus.getInstance().notifyDataSetChanged(mIndexValueList);
  notifyDataSetChanged();
}
origin: huyongli/IndexStickyView

/**
 * 添加底部自定义索引数据适配器
 * @param adapter
 */
public void addIndexFooterAdapter(IndexHeaderFooterAdapter adapter) {
  if(mAdapter == null) {
    throw new NullPointerException("IndexStickyViewAdapter is null, please set IndexStickyViewAdapter first");
  }
  mAdapter.addIndexFooterAdapter(adapter);
}
origin: huyongli/IndexStickyView

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
  int viewType = getItemViewType(position);
  if(viewType == ItemType.ITEM_TYPE_INDEX) {//IndexSticky索引类型视图
    onBindIndexViewHolder(holder, position, getItem(position).getIndexName());
  } else if(viewType == ItemType.ITEM_TYPE_CONTENT) {//IndexSticky索引类型视图正常Item内容视图
    onBindContentViewHolder(holder, position, getItem(position).getOriginalData());
  } else if(mIndexHeaderAdapters.indexOfKey(viewType) >= 0) {//自定义的头部视图
    mIndexHeaderAdapters.get(viewType).onBindViewHolder(holder, position, getItem(position).getOriginalData());
  } else if(mIndexFooterAdapters.indexOfKey(viewType) >= 0) {//自定义的Footer视图
    mIndexFooterAdapters.get(viewType).onBindViewHolder(holder, position, getItem(position).getOriginalData());
  } else {
    throw new IllegalStateException("don't support viewType:" + viewType);
  }
}
origin: huyongli/IndexStickyView

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  RecyclerView.ViewHolder viewHolder;
  if(viewType == ItemType.ITEM_TYPE_INDEX) {//IndexSticky索引类型视图
    viewHolder = onCreateIndexViewHolder(parent);
  } else if(viewType == ItemType.ITEM_TYPE_CONTENT) {//IndexSticky索引类型视图正常Item内容视图
    viewHolder = onCreateContentViewHolder(parent);
  } else if(mIndexHeaderAdapters.indexOfKey(viewType) >= 0) {//自定义的头部视图
    viewHolder = mIndexHeaderAdapters.get(viewType).onCreateViewHolder(parent);
  } else if(mIndexFooterAdapters.indexOfKey(viewType) >= 0) {//自定义的Footer视图
    viewHolder = mIndexFooterAdapters.get(viewType).onCreateViewHolder(parent);
  } else {
    throw new IllegalStateException("don't support viewType:" + viewType);
  }
  addListener(viewHolder, viewType);
  return viewHolder;
}
origin: huyongli/IndexStickyView

/**------------ 设置Footer自定义索引数据项适配器 -------------------------**/
public void addIndexFooterAdapter(IndexHeaderFooterAdapter<T> indexFooterAdapter) {
  if(indexFooterAdapter == null) {
    return;
  }
  indexFooterAdapter.transfer(ItemType.ITEM_TYPE_INDEX_FOOTER + mIndexFooterAdapters.size());
  mIndexFooterAdapters.put(indexFooterAdapter.getItemType(), indexFooterAdapter);
  if(!TextUtils.isEmpty(indexFooterAdapter.getIndexValue())) {
    mIndexValueList.add(indexFooterAdapter.getIndexValue());
    mIndexValuePositionMap.put(indexFooterAdapter.getIndexValue(), getItemCount());
    mIndexFooterValueList.add(indexFooterAdapter.getIndexValue());
    mIndexFooterValuePositionMap.put(indexFooterAdapter.getIndexValue(), getItemCount());
  }
  mIndexFooterList.addAll(indexFooterAdapter.getEntityList());
  notifyDataSetChanged();
}
origin: huyongli/IndexStickyView

@Override
public int getItemViewType(int position) {
  return getItem(position).getItemType();
}
origin: huyongli/IndexStickyView

/**
 * 添加头部自定义索引数据适配器
 * @param adapter
 */
public void addIndexHeaderAdapter(IndexHeaderFooterAdapter adapter) {
  if(mAdapter == null) {
    throw new NullPointerException("IndexStickyViewAdapter is null, please set IndexStickyViewAdapter first");
  }
  mAdapter.addIndexHeaderAdapter(adapter);
}
origin: huyongli/IndexStickyView

/**
 * 根据SideBar中每个索引值获取该索引值在{@link RecyclerView} 中的位置
 * @param touchPosition
 * @return
 */
private int getScrollPositionBySideBarSelectPosition(int touchPosition) {
  String indexValue = mSideBar.getIndexValue(touchPosition);
  return mAdapter.getIndexValuePosition(indexValue);
}
origin: huyongli/IndexStickyView

public void setAdapter(IndexStickyViewAdapter adapter) {
  mAdapter = adapter;
  initStickyHeaderView();
  mSideBar.setData(adapter.getIndexValueList());
  mRecyclerView.setAdapter(adapter);
  IndexValueBus.getInstance().clear();
  IndexValueBus.getInstance().addObserver(this);
}
origin: huyongli/IndexStickyView

  @Override
  public void onClick(View v) {
    int position = viewHolder.getAdapterPosition();
    IndexStickyEntity<T> entity = getItem(position);
    if(viewType == ItemType.ITEM_TYPE_CONTENT) {//IndexSticky索引类型视图正常Item内容视图
      if(mOnItemClickListener != null) {
        mOnItemClickListener.onItemClick(viewHolder.itemView, position, entity.getOriginalData());
      }
    }  else if(mIndexHeaderAdapters.indexOfKey(viewType) >= 0) {//自定义的头部视图
      IndexHeaderFooterAdapter<T> adapter = mIndexHeaderAdapters.get(viewType);
      if(adapter.getOnItemClickListener() != null) {
        adapter.getOnItemClickListener().onItemClick(viewHolder.itemView, position, entity.getOriginalData());
      }
    } else if(mIndexFooterAdapters.indexOfKey(viewType) >= 0) {//自定义的Footer视图
      IndexHeaderFooterAdapter<T> adapter = mIndexFooterAdapters.get(viewType);
      if(adapter.getOnItemClickListener() != null) {
        adapter.getOnItemClickListener().onItemClick(viewHolder.itemView, position, entity.getOriginalData());
      }
    }
  }
});
origin: huyongli/IndexStickyView

  @Override
  public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {

    super.onDraw(c, parent, state);
    int top;
    int bottom;
    int left = parent.getPaddingLeft() + mLeftMargin;
    int right = parent.getWidth() - parent.getPaddingRight() - mRightMargin;
    final int childCount = parent.getChildCount();
    IndexStickyViewAdapter adapter = (IndexStickyViewAdapter)parent.getAdapter();
    IndexStickyEntity entity;
    for (int i = 0; i < childCount; i++) {
      final View child = parent.getChildAt(i);
      int position = parent.getChildAdapterPosition(child);
      entity = adapter.getItem(position);
      if(entity.getItemType() != ItemType.ITEM_TYPE_INDEX &&
          position < (adapter.getItemCount() - 1) &&
          adapter.getItem(position + 1).getItemType() != ItemType.ITEM_TYPE_INDEX) {
        //获得child的布局信息
        final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams)child.getLayoutParams();
        top = child.getBottom() + params.bottomMargin;
        bottom = top + mSize;
        mDivider.setBounds(left, top, right, bottom);
        mDivider.draw(c);
      }
    }
  }
}
origin: huyongli/IndexStickyView

  @Override
  public boolean onLongClick(View v) {
    int position = viewHolder.getAdapterPosition();
    IndexStickyEntity<T> entity = getItem(position);
    if(viewType == ItemType.ITEM_TYPE_CONTENT) {//IndexSticky索引类型视图正常Item内容视图
      if(mOnItemLongClickListener != null) {
        mOnItemLongClickListener.onItemLongClick(viewHolder.itemView, position, entity.getOriginalData());
      }
    }  else if(mIndexHeaderAdapters.indexOfKey(viewType) >= 0) {//自定义的头部视图
      IndexHeaderFooterAdapter<T> adapter = mIndexHeaderAdapters.get(viewType);
      if(adapter.getOnItemLongClickListener() != null) {
        adapter.getOnItemLongClickListener().onItemLongClick(viewHolder.itemView, position, entity.getOriginalData());
      }
    } else if(mIndexFooterAdapters.indexOfKey(viewType) >= 0) {//自定义的Footer视图
      IndexHeaderFooterAdapter<T> adapter = mIndexFooterAdapters.get(viewType);
      if(adapter.getOnItemLongClickListener() != null) {
        adapter.getOnItemLongClickListener().onItemLongClick(viewHolder.itemView, position, entity.getOriginalData());
      }
    }
    return false;
  }
});
origin: huyongli/IndexStickyView

if(firstVisiblePosition < 0 || firstVisiblePosition >= mAdapter.getItemCount()) {
  return;
IndexStickyEntity entity = mAdapter.getItem(firstVisiblePosition);
mSideBar.setSelectPosition(mSideBar.getPosition(entity.getIndexValue()));
if(TextUtils.isEmpty(entity.getIndexName()) && mStickyHeaderView.itemView.getVisibility() == VISIBLE) {
if(firstVisiblePosition + 1 >= mAdapter.getItemCount()) {
  return;
IndexStickyEntity secondVisibleEntity = mAdapter.getItem(firstVisiblePosition + 1);
if(secondVisibleEntity.getItemType() == ItemType.ITEM_TYPE_INDEX) {
cn.ittiger.indexlist.adapterIndexStickyViewAdapter

Javadoc

cn.ittiger.indexlist.IndexStickyView的数据适配器

Most used methods

  • getItem
  • getItemCount
  • addAllIndexFooterAdapterData
    更新数据列表后,重新将Footer添加到列表中
  • addAllIndexHeaderAdapterData
    更新列表后,重新将Header添加到列表中
  • addIndexFooterAdapter
    ------------ 设置Footer自定义索引数据项适配器 -------------------------
  • addIndexHeaderAdapter
    ------------ 设置Header自定义索引数据项适配器 -------------------------
  • addListener
  • getIndexValueList
    获取索引值列表
  • getIndexValuePosition
    获取索引值在列表中的位置
  • getItemViewType
  • isIndexFooterPosition
    当前位置是否为Footer区域
  • isIndexHeaderPosition
    当前位置是否为Header区域
  • isIndexFooterPosition,
  • isIndexHeaderPosition,
  • notifyDataSetChanged,
  • onBindContentViewHolder,
  • onBindIndexViewHolder,
  • onCreateContentViewHolder,
  • onCreateIndexViewHolder,
  • refresh,
  • removeAllFooter,
  • removeAllHeader

Popular in Java

  • Running tasks concurrently on multiple threads
  • setRequestProperty (URLConnection)
  • scheduleAtFixedRate (ScheduledExecutorService)
  • findViewById (Activity)
  • FileReader (java.io)
    A specialized Reader that reads from a file in the file system. All read requests made by calling me
  • Connection (java.sql)
    A connection represents a link from a Java application to a database. All SQL statements and results
  • BitSet (java.util)
    The BitSet class implements abit array [http://en.wikipedia.org/wiki/Bit_array]. Each element is eit
  • Hashtable (java.util)
    A plug-in replacement for JDK1.5 java.util.Hashtable. This version is based on org.cliffc.high_scale
  • Properties (java.util)
    A Properties object is a Hashtable where the keys and values must be Strings. Each property can have
  • Semaphore (java.util.concurrent)
    A counting semaphore. Conceptually, a semaphore maintains a set of permits. Each #acquire blocks if
  • 21 Best Atom Packages for 2021
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimAtomGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyStudentsTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now