最近看一个新闻快讯的开源软件的源码 ,里面有个侧滑返回的功能 ,做笔录 记录下来实现的原理,
里面用到的最直接的原理就是是用了 一个自定义控件 SlidingLayout 侧滑控件,将控件定义在公共的父类中来实现侧滑,父类中的布局
<?xml version="1.0" encoding="utf-8"?>
<com.example.test.SlidingLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slide_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/iv_preview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:contentDescription="@null" />
<FrameLayout
android:id="@+id/content_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</com.example.test.SlidingLayout>
再看父类
public class BaseActivity extends FragmentActivity {
private static final float MIN_SCALE = 0.85f;
private View mPreview;
private FrameLayout contentView;
private float mInitOffset;
private boolean hideTitle = false;
@Override
public void setContentView(int layoutResID) {
super.setContentView(R.layout.slide_layout);
DisplayMetrics metrics = getResources().getDisplayMetrics();
mPreview = findViewById(R.id.iv_preview);
contentView = (FrameLayout) findViewById(R.id.content_view);
mInitOffset = (1 - MIN_SCALE) * metrics.widthPixels / 2;
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,