可滑动的activity
- 可滑动的activity原理,就是将activity的theme设置为透明,之后滑动view的parent即可
- 效果图
主题透明
android:theme="@android:style/Theme.Translucent.NoTitleBar"
之后自定义一个SwipLayout 继承FrameLayout
`public class SwipLayout extends FrameLayout { private View parent; public SwipLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public SwipLayout(Context context, AttributeSet attrs) { this(context, attrs,0); // TODO Auto-generated constructor stub } public SwipLayout(Context context) { this(context,null); }`
之后我们拿到swiplayout的parent。因为我们使用scrollto,因此应该对父容器进行滚动
`public void onWindowFocusChanged(boolean hasWindowFocus) { // 在界面可以和用户交互的时候 并且第一次的时候 才进行初始化 super.onWindowFocusChanged(hasWindowFocus); if(hasWindowFocus&&isFirst){ isFirst=false; init(); //拿到父容器 当window可见的时候 } } private void init() { parent = (View) getParent(); }
`
之后对相关事件进行拦截
`public boolean onInterceptTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: curX = (int) ev.getRawX(); x=curX; break; case MotionEvent.ACTION_MOVE: int touchSlop = ViewConfiguration.get(getContext()).getScaledTouchSlop(); if(ev.getRawX()-curX>touchSlop) { // Log.e("", "actionMove"); //小于触摸的范围就可以 if(ev.getRawX()<100) return true;//拦截 } break; } return sup