mainActivity内にviewPagerを含むアプリケーションを作成しました。このviewPagerには5個のフラグメントが含まれています(4個はrecyclerView、1個はテキストを含む通常のlinearLayout)。 ...ここで Android:recyclerViewを含む子がスクロールされたときにparentViewをスクロールする方法
アプリのスクリーンショットは、tablayoutでなく、すべてのタブが表示されます:さて、あなたはすでに見てきた可能性があるとして、多くのスペースがviewPagerではありませんユーザーが何かを見ることができるように、あまりにもスクロールして、recylerVのものを見る必要があります見る。ユーザーがrecyclerView内をスクロールしようとすると、recyclerViewがページ全体を占有し、次にrecyclerViewが正常にスクロールし始めるまで、mainActivityの可視部分がスクロールされるようにアプリケーションを修正したいと思います。
誰かが私のアプリにこの種のスクロール機能を実装するのを手伝ってもらえますか?私が言っていることへの参照のためにちょうどthisアプリをチェックアウトすることができます。映画やTVシリーズを開き、スクロールしてみると、mainActivityは最初にスクロールされ、残りのレイアウトは....誰かが助けてくれますか?私はすでにstackOverflowのソリューションを試してみましたが、それらの多くはうまくいきませんでした。私はまた、Googleのソリューションを試してみましたが、何も役に立たなかった...
私のアダプタのコードは次のとおりです:
public class cardViewAdapterCreditsCast extends RecyclerView.Adapter<cardViewAdapterCreditsCast.ViewHolder> {
private Context context;
private List<creditsModel> creditsModels;
public cardViewAdapterCreditsCast(Context context, List<creditsModel> creditsModels) {
this.context = context;
this.creditsModels = creditsModels;
}
@Override
public cardViewAdapterCreditsCast.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.new_cast_row, parent, false);
return new cardViewAdapterCreditsCast.ViewHolder(view);
}
@Override
public void onBindViewHolder(cardViewAdapterCreditsCast.ViewHolder holder, int position) {
final creditsModel creditsModel = creditsModels.get(position);
int tempNumber = holder.celebImage.getWidth();
holder.celebImage.setMinimumHeight(tempNumber);
holder.celebImage.setMaxHeight(tempNumber + 1);
String imagePath = "https://image.tmdb.org/t/p/w500" + creditsModel.getProfilePath();
holder.starringAs.setText(creditsModel.getCharacter());
holder.celebName.setText(creditsModel.getActorName());
if (creditsModel.getProfilePath() != null) {
Picasso.with(context).load(imagePath).transform(new CircleTransform()).into(holder.celebImage);
} else
holder.celebImage.setBackgroundResource(R.drawable.not_found);
}
@Override
public int getItemCount() {
return creditsModels.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public ImageView celebImage;
public TextView celebName;
public TextView starringAs;
private LinearLayout linearLayout;
public ViewHolder(View itemView) {
super(itemView);
linearLayout = (LinearLayout) itemView.findViewById(R.id.castRowMainLinearLayout);
celebImage = (ImageView) itemView.findViewById(R.id.castRowImage);
celebName = (TextView) itemView.findViewById(R.id.castRowName);
starringAs = (TextView) itemView.findViewById(R.id.castRowAppearance);
}
}
}
あなたはコーディネーターのレイアウトを使用する必要があります - http://saulmm.github.io/mastering-coordinatorを見てください –