gpt4 book ai didi

android - 在 Android 中滚动 RecyclerView 时如何更改布局

转载 作者:行者123 更新时间:2023-11-29 16:54:28 26 4
gpt4 key购买 nike

在我的应用程序中,我应该显示来自服务器的一些数据,并为此项目创建选项按钮,当单击此选项按钮时,向用户显示此项目的其他数据。
请看下图了解我的意思: enter image description here

当点击“...”时改变布局并显示其他数据,当点击“✕”时关闭此布局并再次显示第一个布局。

我可以在点击... 时显示其他布局,并且可以在点击 时关闭此布局。

但是,我希望在滚动 recyclerView 时关闭此布局(信息布局)并显示基本布局(带有图像),我希望在滚动 recyclerView 时自动执行此操作。< br/>

例如:如果显示信息布局,当滚动 recyclerView 关闭此信息布局并再次显示基本布局。

我在适配器中使用此代码。
当点击...按钮时:

    holder.tvTonightOpenMoreInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
YoYo.with(Techniques.SlideInDown)
.duration(500)
.withListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {

}

@Override
public void onAnimationEnd(Animator animator) {
holder.tvTonightOpenMoreInfo.setVisibility(View.GONE);
holder.tvTonightCloseMoreInfo.setVisibility(View.VISIBLE);
holder.tvTonightMoreInfoLay.setVisibility(View.VISIBLE);
}

@Override
public void onAnimationCancel(Animator animator) {

}

@Override
public void onAnimationRepeat(Animator animator) {

}
})
.playOn(holder.tvTonightMoreInfoLay);
}
});

当点击✕按钮时:

    holder.tvTonightCloseMoreInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
YoYo.with(Techniques.SlideOutUp)
.duration(500)
.withListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {

}

@Override
public void onAnimationEnd(Animator animator) {
holder.tvTonightOpenMoreInfo.setVisibility(View.VISIBLE);
holder.tvTonightCloseMoreInfo.setVisibility(View.GONE);
}

@Override
public void onAnimationCancel(Animator animator) {

}

@Override
public void onAnimationRepeat(Animator animator) {

}
})
.playOn(holder.tvTonightMoreInfoLay);
}
});

我想在滚动 recyclerView 时调用这段代码:

    holder.tvTonightCloseMoreInfo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
YoYo.with(Techniques.SlideOutUp)
.duration(500)
.withListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {

}

@Override
public void onAnimationEnd(Animator animator) {
holder.tvTonightOpenMoreInfo.setVisibility(View.VISIBLE);
holder.tvTonightCloseMoreInfo.setVisibility(View.GONE);
}

@Override
public void onAnimationCancel(Animator animator) {

}

@Override
public void onAnimationRepeat(Animator animator) {

}
})
.playOn(holder.tvTonightMoreInfoLay);
}
});

在 Activity 中初始化 recyclerView :

    layoutManager = new GridLayoutManager(context, 2);
filterRecyclerView.setLayoutManager(layoutManager);
filterRecyclerView.setHasFixedSize(true);
filterRecyclerView.setAdapter(tvTonightAdapter);

我怎么可以呢?请帮助我,我的 friend <3

最佳答案

可以使用OnScrollListener监听RecyclerView的滚动事件,改变布局:

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
// close info layout logic...
}
}

关于android - 在 Android 中滚动 RecyclerView 时如何更改布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45391820/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com