Android开源 - AndroidSweetSheet

nanxicao 8年前
   <h2>效果图</h2>    <p><img alt="" src="https://simg.open-open.com/show/167f913d2fd3d6c274d2a67fd4006bd3.gif"></p>    <h2>使用</h2>    <pre>  <code class="language-java">  // SweetSheet 控件,根据 rl 确认位置  mSweetSheet = new SweetSheet(rl);    //设置数据源 (数据源支持设置 list 数组,也支持从menu 资源中获取)  mSweetSheet.setMenuList(list);  //根据设置不同的 Delegate 来显示不同的风格.  mSweetSheet.setDelegate(new RecyclerViewDelegate(true));  //根据设置不同Effect来设置背景效果:BlurEffect 模糊效果.DimEffect 变暗效果,NoneEffect 没有效果.  mSweetSheet.setBackgroundEffect(new BlurEffect(8));  //设置菜单点击事件  mSweetSheet.setOnMenuItemClickListener(new SweetSheet.OnMenuItemClickListener() {      @Override      public boolean onItemClick(int position, MenuEntity menuEntity1) {            //根据返回值, true 会关闭 SweetSheet ,false 则不会.          Toast.makeText(MainActivity.this, menuEntity1.title + "  " + position, Toast.LENGTH_SHORT).show();          return true;      }  });  </code></pre>    <h2>自定义扩展</h2>    <pre>  <code class="language-java">  // SweetSheet 控件,根据 rl 确认位置  mSweetSheet3 = new SweetSheet(rl);  //定义一个 CustomDelegate 的 Delegate ,并且设置它的出现动画.  CustomDelegate customDelegate = new CustomDelegate(true,          CustomDelegate.AnimationType.DuangLayoutAnimation);  View view = LayoutInflater.from(this).inflate(R.layout.layout_custom_view, null, false);  //设置自定义视图.  customDelegate.setCustomView(view);  //设置代理类  mSweetSheet3.setDelegate(customDelegate);  //因为使用了 CustomDelegate 所以mSweetSheet3中的 setMenuList和setOnMenuItemClickListener就没有效果了  view.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {      @Override      public void onClick(View v) {          mSweetSheet3.dismiss();      }  });  </code></pre>    <h2>监听返回</h2>    <pre>  <code class="language-java">    @Override      public void onBackPressed() {            if(mSweetSheet.isShow()){                mSweetSheet.dismiss();          }          else{              super.onBackPressed();          }      }  </code></pre>    <p> </p>