androidx.recyclerview.widget.RecyclerView#Adapter ( )源码实例Demo

下面列出了androidx.recyclerview.widget.RecyclerView#Adapter ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

/**
 * Determine if it is the last row.
 *
 * @param view   ChildView
 * @param parent RecyclerView
 * @return true is the last row.
 */
private boolean isLastRow(View view, RecyclerView parent) {
    RecyclerView.Adapter adapter = parent.getAdapter();
    if (adapter == null) {
        return false;
    }

    int childCount = adapter.getItemCount();
    int position = ((RecyclerView.LayoutParams) view.getLayoutParams()).getViewLayoutPosition();
    RecyclerView.LayoutManager layoutManager = parent.getLayoutManager();
    if (layoutManager instanceof GridLayoutManager) {
        int spanCount = ((GridLayoutManager) layoutManager).getSpanCount();
        if (mOrientation == VERTICAL) {
            childCount = childCount - childCount % spanCount;
            return position >= childCount;
        }
        return (position + 1) % spanCount == 0;

    } else if (layoutManager instanceof LinearLayoutManager) {
        return position + 1 == childCount;
    }
    return false;
}
 
源代码2 项目: StickyHeaders   文件: DemoActivity.java
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

        case R.id.menuItemInspect:
            showInspectDialog();
            break;

        case R.id.scrollToBottom:
            showScrollToPositionDialog();
            break;

        case R.id.reloadMenuItem:
            RecyclerView.Adapter adapter = recyclerView.getAdapter();
            if (adapter instanceof SectioningAdapter) {
                ((SectioningAdapter) adapter).notifyAllSectionsDataSetChanged();
            } else {
                adapter.notifyDataSetChanged();
            }
            return true;
    }
    return super.onOptionsItemSelected(item);
}
 
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    recyclerView = findViewById(R.id.recycler_view);

    // Use this setting to improve performance if you know that changes
    // in content do not change the layout size of the RecyclerView.
    recyclerView.setHasFixedSize(true);

    // Specify a linear layout manager.
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);

    // Update the RecyclerView item's list with menu items and banner ads.
    addMenuItemsFromJson();
    addBannerAds();
    loadBannerAds();

    // Specify an adapter.
    RecyclerView.Adapter<RecyclerView.ViewHolder> adapter = new RecyclerViewAdapter(this,
        recyclerViewItems);
    recyclerView.setAdapter(adapter);
}
 
源代码4 项目: cathode   文件: RecyclerViewManager.java
public void setAdapter(RecyclerView.Adapter adapter) {
  if (adapter != this.adapter) {
    if (this.adapter != null) {
      this.adapter.unregisterAdapterDataObserver(adapterObserver);
    }

    this.adapter = adapter;
    if (this.adapter != null) {
      if (recyclerView != null) {
        recyclerView.setAdapter(this.adapter);
      }

      adapter.registerAdapterDataObserver(adapterObserver);

      if (adapter.getItemCount() > 0) {
        emptyView.setVisibility(View.GONE);
        recyclerView.setVisibility(View.VISIBLE);
      } else {
        emptyView.setVisibility(View.VISIBLE);
        recyclerView.setVisibility(View.GONE);
      }
    }
  }
}
 
@Override
public final <VH extends RecyclerView.ViewHolder> void setSingleChoiceItems(
        @Nullable final RecyclerView.Adapter<VH> adapter,
        @Nullable final RecyclerView.LayoutManager layoutManager, final int checkedItem,
        @Nullable final DialogInterface.OnClickListener listener) {
    this.items = null;
    this.iconResourceIds = null;
    this.singleChoiceItems = null;
    this.multiChoiceItems = null;
    this.adapter = adapter != null ?
            new RecyclerViewAdapterWrapper<>(getContext(), adapter, new SingleChoiceMode()) :
            null;
    this.layoutManager = adapter != null ?
            (layoutManager != null ? layoutManager : new LinearLayoutManager(getContext())) :
            null;
    this.singleChoiceListener = adapter != null ? listener : null;
    this.multiChoiceListener = null;

    if (checkedItem != -1 && this.adapter != null) {
        this.adapter.setItemChecked(checkedItem, true);
    }

    attachAdapter();
}
 
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    // Dismiss on click outside
    AppCompatDialog dialog = (AppCompatDialog) getDialog();
    if (dialog != null) {
        dialog.setCanceledOnTouchOutside(true);
    }

    // UI
    Context context = getContext();
    if (context != null) {
        RecyclerView standardComponentsRecyclerView = view.findViewById(R.id.standardComponentsRecyclerView);
        standardComponentsRecyclerView.setHasFixedSize(true);
        standardComponentsRecyclerView.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false));
        RecyclerView.Adapter standardBoardSizesAdapter = new StandardComponentsAdapter(mSelectedComponent, components -> {
            mSelectedComponent = components;
            if (mListener != null) {
                mListener.onComponentsSelected(components, mIs400KhzEnabled);
                dismiss();
            }
        });
        standardComponentsRecyclerView.setAdapter(standardBoardSizesAdapter);


        SwitchCompat mode400HhzSwitch = view.findViewById(R.id.mode400HhzSwitch);
        mode400HhzSwitch.setChecked(mIs400KhzEnabled);
        mode400HhzSwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
            if (buttonView.isPressed()) {
                mIs400KhzEnabled = isChecked;
                if (mListener != null) {
                    mListener.onComponentsSelected(mSelectedComponent, mIs400KhzEnabled);
                }
            }
        });
    }
}
 
源代码7 项目: HaoReader   文件: FastScrollView.java
/**
 * Set a new {@link RecyclerView.Adapter} that implements {@link FastScroller.SectionIndexer}
 * to provide child views for the RecyclerView and section text for the FastScroller.
 *
 * @param adapter The new {@link RecyclerView.Adapter} to set, or null to set none
 */
public void setAdapter(@Nullable RecyclerView.Adapter adapter) {
    recyclerView.setAdapter(adapter);

    if (adapter instanceof FastScroller.SectionIndexer) {
        fastScroller.setSectionIndexer((FastScroller.SectionIndexer) adapter);
    } else if (adapter == null) {
        fastScroller.setSectionIndexer(null);
    }
}
 
源代码8 项目: FairEmail   文件: EventBridge.java
/**
 * Installs the event bridge for on the supplied adapter/helper.
 *
 * @param adapter
 * @param selectionTracker
 * @param keyProvider
 *
 * @param <K> Selection key type. @see {@link StorageStrategy} for supported types.
 */
public static <K> void install(
        @NonNull RecyclerView.Adapter<?> adapter,
        @NonNull SelectionTracker<K> selectionTracker,
        @NonNull ItemKeyProvider<K> keyProvider) {

    // setup bridges to relay selection and adapter events
    new TrackerToAdapterBridge<>(selectionTracker, keyProvider, adapter);
    adapter.registerAdapterDataObserver(selectionTracker.getAdapterDataObserver());
}
 
源代码9 项目: OmegaRecyclerView   文件: OmegaRecyclerView.java
@Nullable
protected BaseStickyDecoration provideStickyDecoration(@NonNull RecyclerView.Adapter adapter, @Nullable StickyAdapter stickyAdapter) {
    if (stickyAdapter == null) return null;
    switch (mStickyMode) {
        case StickyAdapter.Mode.MIDDLE:
            return new MiddleStickyDecoration(stickyAdapter);
        case StickyAdapter.Mode.HEADER:
        default:
            return new HeaderStickyDecoration(stickyAdapter);
    }
}
 
源代码10 项目: MaterialScrollBar   文件: Indicator.java
/**
 * This method tests the adapter to make sure that it implements the needed interface.
 *
 * @param adapter The adapter of the attached {@link RecyclerView}.
 */
void testAdapter(RecyclerView.Adapter adapter) {
    if  (adapter == null) {
        Log.e("MaterialScrollBarLib", "The adapter for your recyclerView has not been set; " +
                "skipping indicator layout.");
        return;
    }
    if(!adapterClass.isInstance(adapter)) {
        throw new IllegalArgumentException(
                "In order to add this indicator, the adapter for your recyclerView, "
                        + adapter.getClass().getName()
                        + ", MUST implement " + Utils.getGenericName(this) + ".");
    }
}
 
源代码11 项目: AndroidMaterialDialog   文件: AbstractListDialog.java
@Override
public final <VH extends RecyclerView.ViewHolder> void setSingleChoiceItems(
        @Nullable final RecyclerView.Adapter<VH> adapter,
        @Nullable final RecyclerView.LayoutManager layoutManager, final int checkedItem,
        @Nullable final OnClickListener listener) {
    decorator.setSingleChoiceItems(adapter, layoutManager, checkedItem, listener);
}
 
源代码12 项目: Pix-Art-Messenger   文件: MediaAdapter.java
public static void setMediaSize(RecyclerView recyclerView, int mediaSize) {
    RecyclerView.Adapter adapter = recyclerView.getAdapter();
    if (adapter instanceof MediaAdapter) {
        ((MediaAdapter) adapter).setMediaSize(mediaSize);
    }
}
 
源代码13 项目: libcommon   文件: ArrayListRecyclerViewAdapter.java
public void onItemClick(
@NonNull final RecyclerView.Adapter<?> parent,
@NonNull final View view,
final int position, @Nullable final T item);
 
源代码14 项目: Telegram   文件: FillLastGridLayoutManager.java
@Override
public void onAdapterChanged(RecyclerView.Adapter oldAdapter, RecyclerView.Adapter newAdapter) {
    heights.clear();
    calcLastItemHeight();
    super.onAdapterChanged(oldAdapter, newAdapter);
}
 
public void setAdapter(RecyclerView.Adapter adapter) {
    mRvList.setAdapter(adapter);
}
 
源代码16 项目: libcommon   文件: DocumentTreeRecyclerAdapter.java
public void onItemClick(@NonNull RecyclerView.Adapter<?> parent,
@NonNull View view, @NonNull final DocumentFile item);
 
源代码17 项目: libcommon   文件: DocumentTreeRecyclerAdapter.java
public boolean onItemLongClick(@NonNull RecyclerView.Adapter<?> parent,
@NonNull View view, @NonNull final DocumentFile item);
 
源代码18 项目: OmegaRecyclerView   文件: OmegaPagerRecyclerView.java
public int getItemCount() {
    RecyclerView.Adapter adapter = getAdapter();
    return adapter == null ? 0 : adapter.getItemCount();
}
 
源代码19 项目: RecyclerViewHelper   文件: ClickWrapper.java
public ClickWrapper(RecyclerView.Adapter<RecyclerView.ViewHolder> adapter) {
    this.mAdapter = adapter;
}
 
源代码20 项目: Kore   文件: FavouritesListFragment.java
@Override
protected RecyclerView.Adapter createAdapter() {
    return new FavouritesAdapter(getActivity(), HostManager.getInstance(getActivity()));
}