Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

「update」update demo #4

Merged
merged 1 commit into from
Dec 28, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

## 效果图与示例 apk

![BGASwipeBackLayoutDemo](https://cloud.githubusercontent.com/assets/8949716/21510933/b334a340-ccd4-11e6-9fce-94c2d783c73e.gif)
![BGASwipeBackLayoutDemo](https://cloud.githubusercontent.com/assets/8949716/21512903/fac699f8-ccec-11e6-8437-1bfe8b9bd9d3.gif)

[点击下载 BGASwipeBackLayoutDemo.apk](http://fir.im/BGASwipeBackLayout) 或扫描下面的二维码安装

Expand All @@ -30,7 +30,7 @@ dependencies {

### 2.为需要支持滑动返回的 Activity 设置透明主题 AppTheme.Transparent

```java
```xml
<!-- 这里面的内容改成你自己项目里的 -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!--colorPrimaryDark对应状态栏的颜色-->
Expand Down Expand Up @@ -125,6 +125,8 @@ public class BaseActivity extends AppCompatActivity implements BGASwipeBackLayou

* [StatusBarUtil](https://github.com/laobie/StatusBarUtil) A util for setting status bar style on Android App
* [BGAAdapter-Android](https://github.com/bingoogolapple/BGAAdapter-Android) 在 AdapterView 和 RecyclerView 中通用的 Adapter 和 ViewHolder。RecyclerView 支持 DataBinding 、多种 Item 类型、添加 Header 和 Footer
* [BGAProgressBar-Android](https://github.com/bingoogolapple/BGAProgressBar-Android) 带百分比数字的水平、圆形进度条
* [BGARefreshLayout-Android](https://github.com/bingoogolapple/BGARefreshLayout-Android) 多种下拉刷新效果、上拉加载更多、可配置自定义头部广告位
* 谷爹的 support 包

## 代码是最好的老师,更多详细用法请查看 [demo](https://github.com/bingoogolapple/BGASwipeBackLayout-Android/tree/master/demo):feet:
Expand Down
2 changes: 2 additions & 0 deletions demo/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ dependencies {

// 下面的依赖不是必须的,只是为了方便演示 demo
compile 'cn.bingoogolapple:bga-adapter:1.1.5@aar'
compile 'cn.bingoogolapple:bga-refreshlayout:1.1.7@aar'
compile 'cn.bingoogolapple:bga-progressbar:1.0.0@aar'
compile 'com.android.support:palette-v7:25.1.0'
compile 'com.android.support:recyclerview-v7:25.1.0'
compile 'com.jaeger.statusbaruitl:library:1.3.1'
Expand Down
20 changes: 17 additions & 3 deletions demo/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.bingoogolapple.swipebacklayout.demo">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Expand All @@ -10,7 +12,9 @@
android:theme="@style/AppTheme">
<activity
android:name=".activity.MainActivity"
android:theme="@style/AppTheme.Transparent.Splash">
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Transparent.Splash"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>

Expand All @@ -20,11 +24,21 @@

<activity
android:name=".activity.TestActivity"
android:theme="@style/AppTheme.Transparent"/>
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Transparent"
android:windowSoftInputMode="stateAlwaysHidden"/>

<activity
android:name=".activity.TranslucentActivity"
android:theme="@style/AppTheme.Transparent"/>
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Transparent"
android:windowSoftInputMode="stateAlwaysHidden"/>

<activity
android:name=".activity.WebViewActivity"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Transparent"
android:windowSoftInputMode="stateAlwaysHidden"/>
</application>

</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;

import com.jaeger.library.StatusBarUtil;

import cn.bingoogolapple.swipebacklayout.BGASwipeBackLayout;
import cn.bingoogolapple.swipebacklayout.demo.R;
import cn.bingoogolapple.swipebacklayout.demo.util.KeyboardUtil;
Expand All @@ -17,13 +20,20 @@
* 创建时间:16/12/27 下午5:35
* 描述:开发者可将该类中的某些方法拷贝到自己的 BaseActivity 中封装成适合自己项目的滑动返回基类
*/
public class BaseActivity extends AppCompatActivity implements BGASwipeBackLayout.PanelSlideListener {
public abstract class BaseActivity extends AppCompatActivity implements BGASwipeBackLayout.PanelSlideListener, View.OnClickListener {
protected BGASwipeBackLayout mSwipeBackLayout;
protected Toolbar mToolbar;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
initSwipeBackFinish();
super.onCreate(savedInstanceState);

initView(savedInstanceState);
mToolbar = getViewById(R.id.toolbar);

setListener();
processLogic(savedInstanceState);
}

/**
Expand Down Expand Up @@ -188,6 +198,40 @@ public void executeSwipeBackAnim() {
overridePendingTransition(R.anim.activity_swipeback_enter, R.anim.activity_swipeback_exit);
}

/**
* 设置状态栏颜色
*
* @param color
*/
protected void setStatusBarColor(int color) {
StatusBarUtil.setColorForSwipeBack(this, color);
}

/**
* 初始化布局以及View控件
*/
protected abstract void initView(Bundle savedInstanceState);

/**
* 给View控件添加事件监听器
*/
protected abstract void setListener();

/**
* 处理业务逻辑,状态恢复等操作
*
* @param savedInstanceState
*/
protected abstract void processLogic(Bundle savedInstanceState);

/**
* 需要处理点击事件时,重写该方法
*
* @param v
*/
public void onClick(View v) {
}

/**
* 查找View
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,18 @@ protected boolean isSupportSwipeBack() {
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
protected void initView(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
}

@Override
protected void setListener() {
}

@Override
protected void processLogic(Bundle savedInstanceState) {
}

public void onClick(View v) {
if (v.getId() == R.id.btn_main_test) {
forward(TestActivity.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@
import android.support.v4.view.ViewPager;
import android.support.v7.graphics.Palette;
import android.support.v7.widget.SwitchCompat;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.CompoundButton;

import com.jaeger.library.StatusBarUtil;

import cn.bingoogolapple.swipebacklayout.demo.R;
import cn.bingoogolapple.swipebacklayout.demo.fragment.ContentFragment;

Expand All @@ -26,32 +23,36 @@
* 描述:测试滑动返回布局的接口
*/
public class TestActivity extends BaseActivity {
private Toolbar mToolbar;
private TabLayout mTabLayout;
private ViewPager mViewPager;
private SwitchCompat mSwipeBackEnableSwitch;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
protected void initView(Bundle savedInstanceState) {
setContentView(R.layout.activity_test);
mToolbar = getViewById(R.id.toolbar);
mViewPager = getViewById(R.id.viewPager);
mSwipeBackEnableSwitch = getViewById(R.id.swipeBackEnableSwitch);
}

@Override
protected void setListener() {
testSwipeBackLayout();
}

@Override
protected void processLogic(Bundle savedInstanceState) {
initToolbar();
setUpTabLayoutAndViewPager();

testSwipeBackLayout();
}

private void initToolbar() {
mToolbar = getViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("测试滑动返回布局的接口");
}

private void setUpTabLayoutAndViewPager() {
mViewPager = getViewById(R.id.viewPager);
mViewPager.addOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
Expand Down Expand Up @@ -111,10 +112,14 @@ public void onCheckedChanged(CompoundButton buttonView, boolean isNeedShowShadow
});
}

public void onClickFab(View v) {
public void onClickTranslucentFab(View v) {
forward(TranslucentActivity.class);
}

public void onClickWebViewFab(View v) {
forward(WebViewActivity.class);
}

/**
* 测试 ViewPager 的适配器
*/
Expand Down Expand Up @@ -158,10 +163,6 @@ public CharSequence getPageTitle(int position) {
}
}

private void setStatusBarColor(int color) {
StatusBarUtil.setColorForSwipeBack(this, color);
}

/**
* 根据Palette提取的颜色,修改tab和toolbar以及状态栏的颜色
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@

import android.graphics.Rect;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
Expand All @@ -29,26 +27,31 @@ public class TranslucentActivity extends BaseActivity {
private RecyclerView mContentRv;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
protected void initView(Bundle savedInstanceState) {
setContentView(R.layout.activity_translucent);
mToolbar = getViewById(R.id.toolbar);
mContentRv = getViewById(R.id.recyclerView);
}

@Override
protected void setListener() {
}

@Override
protected void processLogic(Bundle savedInstanceState) {
initToolbar();
initRecyclerView();

StatusBarUtil.setTranslucentForImageView(this, 0, findViewById(R.id.ll_translucent_content));
}

private void initToolbar() {
Toolbar toolbar = getViewById(R.id.toolbar);
toolbar.setBackgroundResource(android.R.color.transparent);
setSupportActionBar(toolbar);
mToolbar.setBackgroundResource(android.R.color.transparent);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setTitle("Test Translucent StatusBar");
}

private void initRecyclerView() {
mContentRv = getViewById(R.id.recyclerView);
mContentRv.addItemDecoration(new RecyclerView.ItemDecoration() {
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
Expand Down
Loading