我有一个视图,可以单击按钮以获取其他信息。信息最初是隐藏的,并在点击时显示。如果我单击它然后向下滚动,则重用布局。现在,新视图显示隐藏的信息,而不会被重复使用。
如何避免或解决此问题?
编辑:一种方法是我在onBindViewHolder中再次隐藏视图。但是想要一个更好的方法
答案 0 :(得分:0)
你必须跟踪点击的位置。
$options = array(
CURLOPT_CONNECTTIMEOUT => 25,//waiting time, in seconds
CURLOPT_PORT => FTP_PORT,
CURLOPT_URL =>'FTPES://'.FTP_HOST.'/'.FTP_FILENAME,
CURLOPT_USERPWD => FTP_USER.':'.FTP_PASS,
CURLOPT_UPLOAD => 1,
CURLOPT_INFILE => $fp,
CURLOPT_INFILESIZE => filesize($meta['uri']),
CURLOPT_TRANSFERTEXT => true,
);
答案 1 :(得分:-1)
您遇到此问题的原因是RecyclerView尝试回收视图以防止在用户滚动时创建每个视图,
所以你需要保存当前位置对象的状态,因为你不要在这里推送你的适配器我试着在样本适配器中解释它
@Override
public void onBindViewHolder(final ContactViewHolder contactViewHolder, final int position) {
SampleObject eachObject = data.get(position);
if(eachObject.getCurrentState() == SampleObject.CLICKED){
// hide button
// show additional information
}
else {
// show button
// hide additional information view
}
并在您的ContactViewHolder类中
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.show_data:
SampleObject eachObject = data.get(position);
eachObject.setCurrentState(SampleObject.CLICKED);
break;