最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Android仿微信activity滑动关闭效果
时间:2017-03-01 编辑:简简单单 来源:一聚教程网
1.利用具体利用v4包下的slidingPaneLayout实现透明的activity,代码如下:
代码如下 | 复制代码 |
BaseActivity: publicclassBaseSlideCloseActivityextendsAppCompatActivityimplements SlidingPaneLayout.PanelSlideListener {
@Override protectedvoidonCreate(Bundle savedInstanceState) { initSlideBackClose(); super.onCreate(savedInstanceState); }
privatevoidinitSlideBackClose() { if(isSupportSwipeBack()) { SlidingPaneLayout slidingPaneLayout =newSlidingPaneLayout(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 =newView(this); leftView.setLayoutParams(newViewGroup.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); } }
protectedbooleanisSupportSwipeBack() { returntrue; }
@Override publicvoidonPanelSlide(View panel,floatslideOffset) {
}
@Override publicvoidonPanelOpened(View panel) { finish(); }
@Override publicvoidonPanelClosed(View panel) {
} } |
activity 透明style:
代码如下 | 复制代码 |
|
相关文章
- sora软件价格介绍 02-22
- sora官网入口地址一览 02-22
- Sora生成的视频使用教程 02-22
- 《梦幻西游》元宵灯谜线索答案大全2024 02-22
- 《原神》有朋自远方来第一天通关攻略 02-22
- 《苏醒之路》四个结局达成攻略 02-22