Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 同步滚动不同宽度的RecyclerViews_Android_Android Recyclerview_Android Adapter - Fatal编程技术网

Android 同步滚动不同宽度的RecyclerViews

Android 同步滚动不同宽度的RecyclerViews,android,android-recyclerview,android-adapter,Android,Android Recyclerview,Android Adapter,我有一个应用程序,存储一些到期日期,并在main活动中显示它们 我正在努力完成第一张图片上的内容,但我还没有完成 到目前为止,我得到的是: 我的问题: 单击右键或左键时,如何剪辑第一个RecyclerView?(解决此问题后,我将制作更改背景颜色和粗体文本的动画) 单击时如何同步两个RecyclerViews以更改到所需位置 这就是我尝试过的: 这些工作或多或少,在第一个环节我设法得到了这个职位,但不知道该如何处理这个职位;在第二个链接上,它确实同步,但我需要在单击时滚动到位置旁

我有一个应用程序,存储一些到期日期,并在main活动中显示它们

我正在努力完成第一张图片上的内容,但我还没有完成

到目前为止,我得到的是:

我的问题:

  • 单击右键或左键时,如何剪辑第一个RecyclerView?(解决此问题后,我将制作更改背景颜色和粗体文本的动画)
  • 单击时如何同步两个RecyclerViews以更改到所需位置
这就是我尝试过的:

这些工作或多或少,在第一个环节我设法得到了这个职位,但不知道该如何处理这个职位;在第二个链接上,它确实同步,但我需要在单击时滚动到位置旁注:I用户PagerSnapHelper在两个RecyclerViews上

如果您需要任何其他活动或有任何反馈,请发表评论

主页

public class Home extends BaseActivity {

private DBHelper mDBHelper;
private Context mContext;
private RecyclerView mRecyclerViewDetails, mRecyclerViewSymbols;
private HomeDetailsAdapter mDetailsAdapter;
private HomeSymbolsAdapter mSymbolsAdapter;
private LinearLayoutManager mLinearLayoutManager;
private LinearLayoutPagerManager mLinearLayoutPagerManager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    super.onCreateDrawer();

    mDBHelper = new DBHelper(getApplicationContext());
    mRecyclerViewDetails = (RecyclerView) findViewById(R.id.recycler_view_details);
    mRecyclerViewSymbols = (RecyclerView) findViewById(R.id.recycler_view_symbols);

    mSymbolsAdapter = new HomeSymbolsAdapter(mContext, mDBHelper.getAllDates(), new HomeSymbolsAdapter.clickCallback() {
        @Override
        public void onItemClick(int position) {
            mRecyclerViewSymbols.scrollToPosition(position);
            Log.d("Home", String.valueOf(position));
        }
    });

    mRecyclerViewSymbols.setAdapter(mSymbolsAdapter);
    mLinearLayoutPagerManager = new LinearLayoutPagerManager(mContext, LinearLayoutManager.HORIZONTAL, false, 3);
    mRecyclerViewSymbols.setLayoutManager(mLinearLayoutPagerManager);
    mRecyclerViewSymbols.getLayoutManager().scrollToPosition(Integer.MAX_VALUE / 2);

    mDetailsAdapter = new HomeDetailsAdapter(mContext, mDBHelper.getAllDates());

    mRecyclerViewDetails.setAdapter(mDetailsAdapter);
    mLinearLayoutManager = new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false);
    mRecyclerViewDetails.setLayoutManager(mLinearLayoutManager);
    mRecyclerViewDetails.getLayoutManager().scrollToPosition(Integer.MAX_VALUE / 2);

    PagerSnapHelper snapHelper = new PagerSnapHelper();
    snapHelper.attachToRecyclerView(mRecyclerViewDetails);
    PagerSnapHelper snapHelper2 = new PagerSnapHelper();
    snapHelper2.attachToRecyclerView(mRecyclerViewSymbols);

}
家庭符号适配器

public class HomeSymbolsAdapter extends RecyclerView.Adapter<HomeSymbolsAdapter.ViewHolder> {

private Context mContext;
private DBHelper mDBHelper;
private ArrayList<Date> mDatesList;
private clickCallback mClickCallback;
private final static int ITEMS_PER_PAGE = 3;

public HomeSymbolsAdapter(Context context, ArrayList<Date> datesList, clickCallback clickCallback) {
    mContext = context;
    mDatesList = datesList;
    mClickCallback = clickCallback;
}

public interface clickCallback{
    void onItemClick(int position);
}

@Override
public HomeSymbolsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.format_home_symbols, parent, false));
}

@Override
public void onBindViewHolder(HomeSymbolsAdapter.ViewHolder holder, int position) {
    int positionInList = position % mDatesList.size();
    Date date = mDatesList.get(positionInList);
    holder.mSymbol.setText(date.getSymbol());

}

@Override
public int getItemCount() {
    return Integer.MAX_VALUE;
}

public class ViewHolder extends RecyclerView.ViewHolder {

    public TextView mSymbol;

    public ViewHolder(View view) {
        super(view);

        mSymbol = (TextView) view.findViewById(R.id.symbols_tv);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mClickCallback.onItemClick(getAdapterPosition());
            }
        });

    }
}
public class HomeDetailsAdapter extends RecyclerView.Adapter<HomeDetailsAdapter.ViewHolder> {

private Context mContext;
private ArrayList<Date> mDates;

public HomeDetailsAdapter(Context context, ArrayList<Date> dates) {
    mContext = context;
    mDates = dates;
}

@Override
public HomeDetailsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.format_home, parent, false));
}

@Override
public void onBindViewHolder(HomeDetailsAdapter.ViewHolder holder, int position) {
    int positionInList = position % mDates.size();
    Date date = mDates.get(positionInList);
    holder.mName.setText(date.getName());
    holder.mDaysLeft.setText("125");
    holder.mDays.setText(R.string.days);
    holder.mDate.setText(date.getDate());
}

@Override
public int getItemCount() {
    return Integer.MAX_VALUE;
}

public class ViewHolder extends RecyclerView.ViewHolder{

    public TextView mName, mDaysLeft, mDays, mDate;

    public ViewHolder(View view) {
        super(view);

        mName = (TextView) view.findViewById(R.id.format_home_name);
        mDaysLeft = (TextView) view.findViewById(R.id.format_home_days_left);
        mDays = (TextView) view.findViewById(R.id.format_home_days);
        mDate = (TextView) view.findViewById(R.id.format_home_date);
    }
}
公共类HomeSymbolsAdapter扩展了RecyclerView.Adapter{
私有上下文;
私人助理医生;
私有ArrayList mDatesList;
私有clickCallback mClickCallback;
私人最终静态整数项每页=3;
公共HomeSymbolsAdapter(上下文上下文、ArrayList日期列表、clickCallback clickCallback){
mContext=上下文;
mDatesList=日期列表;
mClickCallback=单击回调;
}
公共接口clickCallback{
无效单击(内部位置);
}
@凌驾
public HomeSymbolsAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
返回新的ViewHolder(LayoutInflater.from(parent.getContext())。充气(R.layout.format_home_symbols,parent,false));
}
@凌驾
BindViewHolder上的公共无效(HomeSymbolsAdapter.ViewHolder,int位置){
int positionInList=位置%mDatesList.size();
Date-Date=mDatesList.get(位置列表);
holder.mSymbol.setText(date.getSymbol());
}
@凌驾
public int getItemCount(){
返回Integer.MAX_值;
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图mSymbol;
公共视图持有者(视图){
超级(视图);
mSymbol=(TextView)view.findviewbyd(R.id.symbols\u tv);
view.setOnClickListener(新的view.OnClickListener(){
@凌驾
公共void onClick(视图v){
mClickCallback.onItemClick(getAdapterPosition());
}
});
}
}
HomeDetailsAdapter

public class HomeSymbolsAdapter extends RecyclerView.Adapter<HomeSymbolsAdapter.ViewHolder> {

private Context mContext;
private DBHelper mDBHelper;
private ArrayList<Date> mDatesList;
private clickCallback mClickCallback;
private final static int ITEMS_PER_PAGE = 3;

public HomeSymbolsAdapter(Context context, ArrayList<Date> datesList, clickCallback clickCallback) {
    mContext = context;
    mDatesList = datesList;
    mClickCallback = clickCallback;
}

public interface clickCallback{
    void onItemClick(int position);
}

@Override
public HomeSymbolsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.format_home_symbols, parent, false));
}

@Override
public void onBindViewHolder(HomeSymbolsAdapter.ViewHolder holder, int position) {
    int positionInList = position % mDatesList.size();
    Date date = mDatesList.get(positionInList);
    holder.mSymbol.setText(date.getSymbol());

}

@Override
public int getItemCount() {
    return Integer.MAX_VALUE;
}

public class ViewHolder extends RecyclerView.ViewHolder {

    public TextView mSymbol;

    public ViewHolder(View view) {
        super(view);

        mSymbol = (TextView) view.findViewById(R.id.symbols_tv);
        view.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mClickCallback.onItemClick(getAdapterPosition());
            }
        });

    }
}
public class HomeDetailsAdapter extends RecyclerView.Adapter<HomeDetailsAdapter.ViewHolder> {

private Context mContext;
private ArrayList<Date> mDates;

public HomeDetailsAdapter(Context context, ArrayList<Date> dates) {
    mContext = context;
    mDates = dates;
}

@Override
public HomeDetailsAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    return new ViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.format_home, parent, false));
}

@Override
public void onBindViewHolder(HomeDetailsAdapter.ViewHolder holder, int position) {
    int positionInList = position % mDates.size();
    Date date = mDates.get(positionInList);
    holder.mName.setText(date.getName());
    holder.mDaysLeft.setText("125");
    holder.mDays.setText(R.string.days);
    holder.mDate.setText(date.getDate());
}

@Override
public int getItemCount() {
    return Integer.MAX_VALUE;
}

public class ViewHolder extends RecyclerView.ViewHolder{

    public TextView mName, mDaysLeft, mDays, mDate;

    public ViewHolder(View view) {
        super(view);

        mName = (TextView) view.findViewById(R.id.format_home_name);
        mDaysLeft = (TextView) view.findViewById(R.id.format_home_days_left);
        mDays = (TextView) view.findViewById(R.id.format_home_days);
        mDate = (TextView) view.findViewById(R.id.format_home_date);
    }
}
公共类HomeDetailsAdapter扩展了RecyclerView.Adapter{
私有上下文;
私人ArrayList mDates;
公共HomeDetailsAdapter(上下文、数组列表日期){
mContext=上下文;
日期=日期;
}
@凌驾
public HomeDetailsAdapter.ViewHolder onCreateViewHolder(视图组父级,int-viewType){
返回新的ViewHolder(LayoutInflater.from(parent.getContext()).flate(R.layout.format_home,parent,false));
}
@凌驾
BindViewHolder上的公共无效(HomeDetailsAdapter.ViewHolder,int位置){
int positionInList=位置%mDates.size();
日期=mDates.get(位置列表);
holder.mName.setText(date.getName());
持有人.mDaysLeft.setText(“125”);
holder.mDays.setText(R.string.days);
holder.mDate.setText(date.getDate());
}
@凌驾
public int getItemCount(){
返回Integer.MAX_值;
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图mName、mDaysLeft、mDays、mDate;
公共视图持有者(视图){
超级(视图);
mName=(TextView)view.findViewById(R.id.format\u home\u name);
mDaysLeft=(TextView)view.findViewById(R.id.format\u home\u days\u left);
mDays=(TextView)view.findViewById(R.id.format\u home\u days);
mDate=(TextView)view.findViewById(R.id.format\u home\u date);
}
}