Android 在recyclerview中水平滚动图像

Android 在recyclerview中水平滚动图像,android,android-viewpager,android-recyclerview,viewpagerindicator,Android,Android Viewpager,Android Recyclerview,Viewpagerindicator,我必须做一个滚动图像在一个回收视图与点作为指标。请看附件中的截图。圆圈图像是点指示器 到目前为止,我已经使用了RecyclerView和GridLayoutManager。在适配器内部,我制作了另一个标题类型的项目,即用于滚动图像。对于滚动,我正在使用库并已成功导入到我的项目中 因为我是android新手,所以我不能再往前走了,我不知道如何在我的项目中使用它 另外,请建议这是否是实现相同结果的正确途径,或者建议其他方法 到目前为止,我的代码是: public static final int

我必须做一个滚动图像在一个回收视图与点作为指标。请看附件中的截图。圆圈图像是点指示器

到目前为止,我已经使用了RecyclerView和GridLayoutManager。在适配器内部,我制作了另一个标题类型的项目,即用于滚动图像。对于滚动,我正在使用库并已成功导入到我的项目中

因为我是android新手,所以我不能再往前走了,我不知道如何在我的项目中使用它

另外,请建议这是否是实现相同结果的正确途径,或者建议其他方法

到目前为止,我的代码是:

 public static final int TYPE_HEADER = 1;
public static final int TYPE_ITEM = 0;


List<CatetoryListModel> data = Collections.emptyList();
LayoutInflater inflater;
Context context;

public CategoryRecyclerAdapter(Context context, List<CatetoryListModel> data) {
    inflater = LayoutInflater.from(context);
    this.data = data;
    this.context = context;
}

@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    // public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

    if (viewType == TYPE_HEADER) {

        View view = inflater.inflate(R.layout.recycler_header, parent, false);
        MyViewHolderHeader myViewHolder = new MyViewHolderHeader(view, context);
        return myViewHolder;

    } else {
        View view = inflater.inflate(R.layout.recycler_custom_row, parent, false);
        MyViewHolder myViewHolder = new MyViewHolder(view, context);
        return myViewHolder;
    }

}

@Override
// public void onBindViewHolder(MyViewHolder holder, int position) {
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
    // StaggeredGridLayoutManager.LayoutParams layoutParams = (StaggeredGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
    //  layoutParams.setFullSpan(true);
    if (holder instanceof MyViewHolder) {
        CatetoryListModel current = data.get(position - 1);  //potion now becomes 1 and data start from 0 index
        //holder.title.setText(current.getCategoryName());
        // holder.desp.setText(current.getDescription());
        ((MyViewHolder) holder).icon.setImageResource(current.getImgSrc());
    } else {
       // ((MyViewHolderHeader) holder).icon.setImageResource(R.drawable.banner);
    }
}

@Override
public int getItemViewType(int position) {
    if (position == 0)
        return TYPE_HEADER;

    return TYPE_ITEM;
}

//Returns the total number of items in the data set hold by the adapter.
//no of items to be rendered by adapter
@Override
public int getItemCount() {
    return data.size() + 1;
}

class MyViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

    TextView title;
    TextView desp;
    ImageView icon;
    Context cntxt;

    public MyViewHolder(View itemView, Context c) {
        super(itemView);

            cntxt = c;
            itemView.setClickable(true);
            itemView.setOnClickListener(this);
            // title = (TextView)itemView.findViewById(R.id.category);
            //  desp = (TextView)itemView.findViewById(R.id.description);
            icon = (ImageView) itemView.findViewById(R.id.imgsrc);

    }

    @Override
    public void onClick(View v) {
        Toast.makeText(cntxt, "Hello", Toast.LENGTH_LONG).show();
    }
}

class MyViewHolderHeader extends RecyclerView.ViewHolder {

    //ImageView icon;
   // ViewPager mPager;
  //  CirclePageIndicator mIndicator;
  //  TestFragmentAdapter mAdapter;

    public MyViewHolderHeader(View itemView, Context c) {
        super(itemView);

     //   mAdapter = new TestFragmentAdapter(getSupportFragmentManager());

     //   mPager = (ViewPager)itemView.findViewById(R.id.pager);
      //  mPager.setAdapter(mAdapter);

      //  mIndicator = (CirclePageIndicator)itemView.findViewById(R.id.indicator);
      //  mIndicator.setViewPager(mPager);

    }

}
public static final int TYPE_HEADER=1;
公共静态最终整数类型\u项=0;
List data=Collections.emptyList();
充气机;
语境;
公共类别RecyclerAdapter(上下文、列表数据){
充气器=充气器。从(上下文);
这个数据=数据;
this.context=上下文;
}
@凌驾
public RecyclerView.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
//公共MyViewHolder onCreateViewHolder(视图组父级,int-viewType){
if(viewType==类型\标题){
视图=充气机。充气(R.layout.recycler_标题,父项,false);
MyViewHolderHeader myViewHolder=新的MyViewHolderHeader(视图,上下文);
返回myViewHolder;
}否则{
视图=充气机。充气(R.layout.recycler\u custom\u行,父项,false);
MyViewHolder MyViewHolder=新的MyViewHolder(视图,上下文);
返回myViewHolder;
}
}
@凌驾
//公共无效onBindViewHolder(MyViewHolder,int位置){
BindViewHolder上的公共无效(RecyclerView.ViewHolder,int位置){
//StaggedGridLayoutManager.LayoutParams LayoutParams=(StaggedGridLayoutManager.LayoutParams)holder.itemView.getLayoutParams();
//layoutParams.setFullSpan(真);
if(MyViewHolder的持有者实例){
CatetoryListModel current=data.get(位置-1);//药剂现在变为1,数据从0索引开始
//holder.title.setText(current.getCategoryName());
//holder.desp.setText(current.getDescription());
((MyViewHolder)holder.icon.setImageResource(current.getImgSrc());
}否则{
//((MyViewHolderHeader)holder.icon.setImageResource(R.drawable.banner);
}
}
@凌驾
public int getItemViewType(int位置){
如果(位置==0)
返回类型_头;
返回类型\ U项目;
}
//返回适配器保留的数据集中的项目总数。
//适配器要呈现的项目数
@凌驾
public int getItemCount(){
返回数据.size()+1;
}
类MyViewHolder扩展了RecyclerView.ViewHolder实现了View.OnClickListener{
文本视图标题;
TextView-desp;
图像视图图标;
上下文cntxt;
公共MyViewHolder(视图项视图,上下文c){
超级(项目视图);
cntxt=c;
itemView.setClickable(真);
setOnClickListener(这个);
//title=(TextView)itemView.findViewById(R.id.category);
//desp=(TextView)itemView.findViewById(R.id.description);
icon=(ImageView)itemView.findViewById(R.id.imgsrc);
}
@凌驾
公共void onClick(视图v){
Toast.makeText(cntxt,“Hello”,Toast.LENGTH_LONG).show();
}
}
类MyViewHolderHeader扩展了RecyclerView.ViewHolder{
//图像视图图标;
//可视寻呼机;
//环形指示器;
//测试碎片适配器;
公共MyViewHolderHeader(视图项视图,上下文c){
超级(项目视图);
//mAdapter=newtestfragmentadapter(getSupportFragmentManager());
//mPager=(ViewPager)itemView.findViewById(R.id.pager);
//mPager.setAdapter(mAdapter);
//mIndicator=(CirclePageIndicator)itemView.findViewById(R.id.indicator);
//mIndicator.setViewPager(mPager);
}
}
recycler_header.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v4.view.ViewPager
    android:id="@+id/pager"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    />
<com.viewpagerindicator.CirclePageIndicator
    android:id="@+id/indicator"
    android:padding="10dip"
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    />

回收器\u custom\u row.xml

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardCornerRadius="4dp"
android:id="@+id/card_view"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
>

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    >
<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/imgsrc"
    android:src="@drawable/close" />


</RelativeLayout>


你找到解决方案了吗???如何设计此布局我也在寻找,请提供一些想法和帮助当坐标布局时,如果单击任何选项菜单图标,工具栏标题文本不可见,请帮助我在工具栏上显示标题也已修复。