oxoooo / pull-back-layout

Pull down to finish an Activity.
www.oxo.ooo
MIT License
541 stars 65 forks source link

Pull Back Layout

Pull down to finish an Activity.

Download

repositories {
    // ...
    maven { url "https://jitpack.io" }
}

dependencies {
    // ... support library ...
    // ...
    compile 'com.github.oxoooo:pull-back-layout:1.0.1'
}

Usage

You may refer to one of our apps that already using this library: mr-mantou-android

  1. Make your Activity translucent by adding these two lines to your theme:

    <style name="AppTheme" ...>
      <!-- ... -->
    
      <item name="android:windowBackground">@android:color/transparent</item>
      <item name="android:windowIsTranslucent">true</item>
    
      <!-- also translucent system ui -- suggested but not required -->
      <item name="android:windowTranslucentStatus">true</item>
      <item name="android:windowTranslucentNavigation">true</item>
    </style>
  2. Wraps ooo.oxo.library.widget.PullBackLayout around your ImageView or ViewPager:

    <ooo.oxo.library.widget.PullBackLayout
      android:id="@+id/puller"
      android:layout_width="match_parent"
      android:layout_height="match_parent">
    
      <android.support.v4.view.ViewPager
          android:id="@+id/pager"
          android:layout_width="match_parent"
          android:layout_height="match_parent" />
    
    </ooo.oxo.library.widget.PullBackLayout>
  3. Set a callback:

    public class ViewerActivity extends AppCompatActivity implements PullBackLayout.Callback {
    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          /* ... */
          puller.setCallback(this);
      }
    
      @Override
      public void onPullStart() {
          // fade out Action Bar ...
          // show Status Bar ...
      }
    
      @Override
      public void onPull(float progress) {
          // set the opacity of the window's background
      }
    
      @Override
      public void onPullCancel() {
          // fade in Action Bar
      }
    
      @Override
      public void onPullComplete() {
          supportFinishAfterTransition();
      }
    
    }

License

MIT License