package com.roboo.like.google; import android.app.ActionBar; import android.content.Context; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.widget.FrameLayout; import com.roboo.like.google.listener.SwipeBackListener; import com.roboo.like.google.views.SwipeBackFrameLayout; import com.roboo.like.google.views.SwipeBackFrameLayout.SwipeListener; import com.roboo.like.google.views.helper.SwipeBackActivityHelper; public abstract class BaseLayoutActivity extends BaseActivity implements SwipeBackListener { public static final String PREF_LOACTION_CITY="city"; public static final String PREF_APP_FIRST_START="first_start"; public static final String PREF_LOACTION_ADDRESS="address"; public static final String PREF_LOACTION_LATITUDE="latitude"; public static final String PREF_LOACTION_LONGITUDE="longitude"; public static final double SUZHOU_LONGITUDE = 120.676459; public static final double SUZHOU_LATITUDE = 31.300916; public static final String DEFAULT_CITY="苏州市"; public static final String DEFAULT_ADDRESS="国际科技园"; /** 滑动关闭Activity的帮助工具类对象 */ protected SwipeBackActivityHelper mActivityHelper; /** ActionBar对象 */ protected ActionBar mActionBar; /** 主要的窗口容器 */ private FrameLayout mContainer; public abstract void initView(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (isActionBarEnable()) { mActionBar = getActionBar(); } mActivityHelper = new SwipeBackActivityHelper(this); mActivityHelper.onActivityCreate(); super.setContentView(R.layout.activity_base);// TODO mContainer = (FrameLayout) findViewById(R.id.frame_container); } public void setContentView(int layoutResID) { View childView = LayoutInflater.from(this).inflate(layoutResID, null); mContainer.addView(childView); } public void setContentView(View view) { mContainer.addView(view); } protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); mActivityHelper.onPostCreate(); } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); break; } return super.onOptionsItemSelected(item); } public SwipeBackFrameLayout getSwipeBackLayout() { return mActivityHelper.getSwipeBackLayout(); } private boolean isActionBarEnable() { return !getWindow().hasFeature(Window.FEATURE_NO_TITLE); } @Override public void setSwipeBackEnable(boolean enable) { getSwipeBackLayout().setEdgeTrackingEnabled(SwipeBackFrameLayout.EDGE_RIGHT); getSwipeBackLayout().setEnableGesture(enable); getSwipeBackLayout().addSwipeListener(new SwipeListenerImpl()); } @Override public void scrollToFinishActivity() { getSwipeBackLayout().scrollToFinishActivity(); } @Override public void scrollToNextActivity() { } private class SwipeListenerImpl implements SwipeListener { public void onScrollStateChange(int state, float scrollPercent) { System.out.println("onScrollStateChange"); } @Override public void onEdgeTouch(int edgeFlag) { System.out.println("onEdgeTouch"); } @Override public void onScrollOverThreshold() { System.out.println("onScrollOverThreshold"); } } }