【问题标题】:how to shuffle image on recyclerview如何在recyclerview上随机播放图像
【发布时间】:2016-04-16 13:23:39
【问题描述】:

我想在单击按钮时调整我的网格 recylerview。我该怎么做

这是我的代码。

public class MainActivity extends AppCompatActivity {

Toolbar toolbar;
Context mContext;
Button suffle;
List<ImageData> data = new ArrayList<>();
 Recycle_Adapter adapter = new Recycle_Adapter(mContext, data);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    toolbar = (Toolbar)findViewById(R.id.app_bar);
    setSupportActionBar(toolbar);
    assert getSupportActionBar() != null;
    getSupportActionBar().setHomeButtonEnabled(true);
    suffle = (Button)findViewById(R.id.suffle);

    for(int i =0;i<Glob.imgs.length;i++) {
        data.add(new ImageData(Glob.imgs[i]));
    }

    try {
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycleGridView);
        //recyclerView.setLayoutManager(new LinearLayoutManager(this));
         recyclerView.setLayoutManager(new StaggeredGridLayoutManager(4, StaggeredGridLayoutManager.VERTICAL));
         recyclerView.setHasFixedSize(true);
        recyclerView.setAdapter(adapter);


    }catch (NullPointerException e){
        e.printStackTrace();
    }

    suffle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

        }
    });

}

我使用 Collections.Shuffle(data);但它不起作用,也许我不知道如何使用,我只是找到并尝试使用,我不知道,帮助我..

【问题讨论】:

    标签: android android-studio android-recyclerview shuffle


    【解决方案1】:

    只需使用Collections.shuffle(list) 打乱您的列表并将打乱的列表提供回适配器,如下所示

    suffle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
    
            Collections.shuffle(data);
    
            adapter = new Recycle_Adapter(mContext, data);
            recyclerView.swapAdapter(data, false);
        }
    });
    

    【讨论】:

    • 它的工作.. 谢谢.. 现在我想应用随机播放动画。我该怎么做。
    【解决方案2】:

    在您的按钮的 onClick 中进行随机播放。 然后像这样调用 adapter.notifyItemRangeChanged() :

    suffle.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Create this method in your adapter class and inside it call
            // shuffle on the list of items
            adapter.shuffleList(); 
            // Then notify the adapter that changes have been made to the list
            adapter.notifyItemRangeChanged(0, adapter.getItemCount());
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2013-11-21
      • 2022-07-10
      • 2013-03-06
      • 2014-10-10
      • 2012-08-21
      • 1970-01-01
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      相关资源
      最近更新 更多