android RecyclerView的线性跟网格互换


点击图片的背景:

                   

drawable包下的文件:item.xml文件

 


<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:state_checked="true" android:drawable="@drawable/kind_grid"></item>
    <item  android:state_checked="false" android:drawable="@drawable/kind_liner"></item>
</selector>
main的布局:



    <CheckBox
                        android:button="@null"
                        android:id="@+id/iv_msg"
                        android:layout_width="30dp"
                        android:layout_height="20dp"
                        android:background="@drawable/item2"
                        />
  <android.support.v7.widget.RecyclerView
      android:id="@+id/lv"
      android:layout_width="match_parent"
      android:layout_height="match_parent"></android.support.v7.widget.RecyclerView>

</LinearLayout>

主要的逻辑上代码:


  private boolean flag=false;  
  private SelectRelAdapter selectRelAdapter;  
  private CheckBox img;  
  
rcy =  findViewById(R.id.lv);  
img= findViewById(R.id.iv_msg);  
  

 img.setChecked(flag);  
      img.setOnClickListener(new View.OnClickListener() {  
          @Override  
          public void onClick(View view) {  
           if(flag){  
              adapter();  
                img.setChecked(false);  
                flag=img.isChecked();  
           }else {  
                adapter1();  
               img.setChecked(true);  
               flag=img.isChecked();  
           }  
          }  
      });  
  
      if(img.isChecked()){  
          adapter();  
      }else {  
          adapter1();  
      }  

private void  adapter(){  
      rcy.setLayoutManager(new LinearLayoutManager(this));  
      SelectRelAdapter selectRelAdapter = new SelectRelAdapter(data, this);  
      rcy.setAdapter(selectRelAdapter);  
      
  
  }  

  private void  adapter1(){  
      rcy.setLayoutManager(new GridLayoutManager(this,2));  
      selectRelAdapter = new SelectRelAdapter(data, this);  
      rcy.setAdapter(selectRelAdapter);  
      
  }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值