Android 在recyclerview中水平滚动图像
我必须做一个滚动图像在一个回收视图与点作为指标。请看附件中的截图。圆圈图像是点指示器 到目前为止,我已经使用了RecyclerView和GridLayoutManager。在适配器内部,我制作了另一个标题类型的项目,即用于滚动图像。对于滚动,我正在使用库并已成功导入到我的项目中 因为我是android新手,所以我不能再往前走了,我不知道如何在我的项目中使用它 另外,请建议这是否是实现相同结果的正确途径,或者建议其他方法 到目前为止,我的代码是:Android 在recyclerview中水平滚动图像,android,android-viewpager,android-recyclerview,viewpagerindicator,Android,Android Viewpager,Android Recyclerview,Viewpagerindicator,我必须做一个滚动图像在一个回收视图与点作为指标。请看附件中的截图。圆圈图像是点指示器 到目前为止,我已经使用了RecyclerView和GridLayoutManager。在适配器内部,我制作了另一个标题类型的项目,即用于滚动图像。对于滚动,我正在使用库并已成功导入到我的项目中 因为我是android新手,所以我不能再往前走了,我不知道如何在我的项目中使用它 另外,请建议这是否是实现相同结果的正确途径,或者建议其他方法 到目前为止,我的代码是: public static final int
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>
你找到解决方案了吗???如何设计此布局我也在寻找,请提供一些想法和帮助当坐标布局时,如果单击任何选项菜单图标,工具栏标题文本不可见,请帮助我在工具栏上显示标题也已修复。