Android仿微信activity滑动关闭
16lz
2021-01-23
1.利用具体利用v4包下的slidingPaneLayout实现透明的activity;代码如下:
BaseActivity:
public class BaseSlideCloseActivity extends AppCompatActivity implements SlidingPaneLayout.PanelSlideListener { @Override protected void onCreate(Bundle savedInstanceState) { initSlideBackClose(); super.onCreate(savedInstanceState); } private void initSlideBackClose() { if (isSupportSwipeBack()) { SlidingPaneLayout slidingPaneLayout = new SlidingPaneLayout(this); // 通过反射改变mOverhangSize的值为0, // 这个mOverhangSize值为菜单到右边屏幕的最短距离, // 默认是32dp,现在给它改成0 try { Field overhangSize = SlidingPaneLayout.class.getDeclaredField("mOverhangSize"); overhangSize.setAccessible(true); overhangSize.set(slidingPaneLayout, 0); } catch (Exception e) { e.printStackTrace(); } slidingPaneLayout.setPanelSlideListener(this); slidingPaneLayout.setSliderFadeColor(getResources() .getColor(android.R.color.transparent)); // 左侧的透明视图 View leftView = new View(this); leftView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); slidingPaneLayout.addView(leftView, 0); ViewGroup decorView = (ViewGroup) getWindow().getDecorView(); // 右侧的内容视图 ViewGroup decorChild = (ViewGroup) decorView.getChildAt(0); decorChild.setBackgroundColor(getResources() .getColor(android.R.color.white)); decorView.removeView(decorChild); decorView.addView(slidingPaneLayout); // 为 SlidingPaneLayout 添加内容视图 slidingPaneLayout.addView(decorChild, 1); } } protected boolean isSupportSwipeBack() { return true; } @Override public void onPanelSlide(View panel, float slideOffset) { } @Override public void onPanelOpened(View panel) { finish(); } @Override public void onPanelClosed(View panel) { }}
activity 透明style:
xmlns:tools="http://schemas.android.com/tools">
更多相关文章
- android > 读取http html 内容
- Android 采用SAX解析XML内容 【学习记录】
- Android Studio 无法预览xml布局视图
- Android实现动态显示或隐藏密码输入框的内容
- Android使用文件管理器打开指定文件夹,浏览里面的内容
- android解析httpresponce内容
- Android中TextView内容过长加省略号,设置超出6个字就用省略号表示
- Android视图绘画与属性动画
- android自定义视图属性(atts.xml,TypedArray)学习