Skip to content
radishwu edited this page Apr 17, 2016 · 1 revision

TitanRecyclerView

RecyclerView 及 Adapter 的封装

使用方法

创建布局文件。

例:

<com.youzan.titan.TitanRecyclerView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/titan_recycler_view"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"/>

使用QuickAdapter。

mAdapter = new QuickAdapter<String>(R.layout.text_item, mData) {
            @Override
            public void bindView(AutoViewHolder holder, int position, String model) {
                holder.getTextView(R.id.text_item_textview).setText("0".equals(model) ? attachActivity.getString(R.string.close) : model + attachActivity.getString(R.string.people));
            }
        };
        mAttackView.addItemDecoration(new AttackHorizontalDivider.Builder(attachActivity).colorResId(R.color.light_theme_separate_line).build());
        mAttackView.setAdapter(mAdapter);
        mAttackView.setOnItemClickListener(new ItemClickSupport.OnItemClickListener() {
            @Override
            public void onItemClick(RecyclerView recyclerView, View view, final int position, long l) {
                DialogUtil.showDialog(attachActivity, R.string.text_notice, R.string.confirm, new DialogUtil.OnClickListener() {
                    @Override
                    public void onClick() {
                        //TODO
                    }
                }, false);
            }
        });

使用继承TitanAdapter。

public class ItemsAdapter extends TitanAdapter<DemoItem> {

    @Override
    protected RecyclerView.ViewHolder createVHolder(ViewGroup parent, int viewType) {
        return new NormalTextViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_text, parent, false), this);
    }

    @Override
    protected void showItemView(RecyclerView.ViewHolder holder, int position) {
        ((NormalTextViewHolder) holder).mTextView.setText(mData.get(position).title);
    }

    @Override
    public long getAdapterItemId(int position) {
        return 0;
    }

    public static class NormalTextViewHolder extends RecyclerView.ViewHolder {
        TextView mTextView;
        ItemsAdapter mAdapter;

        NormalTextViewHolder(View view, ItemsAdapter adapter) {
            super(view);
            mTextView = (TextView) view.findViewById(R.id.text_view);
            mAdapter = adapter;
        }
    }
}

继承TitanAdapter,调用

mTitanRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mAdapter = new ItemsAdapter();
mAdapter.setData(mData);
mTitanRecyclerView.setAdapter(mAdapter);
mTitanRecyclerView.setOnItemClickListener(new ItemClickSupport.OnItemClickListener() {
      @Override
      public void onItemClick(RecyclerView recyclerView, View view, int position, long id) {
          Log.d("NormalTextViewHolder", "onClick--> position = " + position);
          DemoItem item = mAdapter.getItem(position);
          if (null == item) {
               return;
          }

          if (position < 9) {
               Intent intent = new Intent(getContext(), DetailActivity.class);
               intent.putExtra("position", position);
               intent.putExtra("title", item.title);
               getActivity().startActivity(intent);
          } else {
               Intent intent = new Intent(getContext(), SelectActivity.class);
               intent.putExtra("position", position);
               intent.putExtra("title", item.title);
               getActivity().startActivity(intent);
          }
      }
});
Clone this wiki locally