android左滑返回關(guān)閉Activity

    記一次實(shí)現(xiàn)左滑關(guān)閉頁面 返回上個頁面,雖然實(shí)現(xiàn)的不完美 但這也是一種實(shí)現(xiàn)方式 記錄學(xué)習(xí)的過程
     實(shí)現(xiàn)方式是v4 包下的 SlidingPaneLayout 


     private void SlideBackClose() {
              SlidingPaneLayout slidingPaneLayout = new SlidingPaneLayout(this);
    try {
        Field overhangSize = SlidingPaneLayout.class.getDeclaredField("mOverhangSize");
        overhangSize.setAccessible(true);
        overhangSize.set(slidingPaneLayout, 0);
    } catch (Exception e) {
        e.printStackTrace();
    }
    slidingPaneLayout.setPanelSlideListener(new SlidingPaneLayout.PanelSlideListener() {
        @Override
        public void onPanelSlide(View panel, float slideOffset) {

        }

        @Override
        public void onPanelOpened(View panel) {
            finish();
        }

        @Override
        public void onPanelClosed(View panel) {

        }
    });
    slidingPaneLayout.setSliderFadeColor(getResources()
            .getColor(android.R.color.transparent));
    View leftView = new View(this);
    leftView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
    slidingPaneLayout.addView(leftView, 0);
    ViewGroup decorView = (ViewGroup) getWindow().getDecorView();
    ViewGroup decorChild = (ViewGroup) decorView.getChildAt(0);
    decorChild.setBackgroundColor(getResources()
            .getColor(android.R.color.white));
    decorView.removeView(decorChild);
    decorView.addView(slidingPaneLayout);
    slidingPaneLayout.addView(decorChild, 1);
      }

然后設(shè)置Activity的主題

 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"/>

<style name="SlidingBack.Theme" parent="AppTheme">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowAnimationStyle">@style/SlidingBack</item>
</style>

<style name="SlidingBack" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/sliding_in_right</item>
<item name="android:activityOpenExitAnimation">@anim/sliding_out_right</item>
<item name="android:activityCloseEnterAnimation">@anim/sliding_in_right</item>
<item name="android:activityCloseExitAnimation">@anim/sliding_out_right</item>
<item name="android:wallpaperOpenEnterAnimation">@anim/sliding_in_right</item>
<item name="android:wallpaperOpenExitAnimation">@anim/sliding_out_right</item>
<item name="android:wallpaperCloseEnterAnimation">@anim/sliding_in_right</item>
<item name="android:wallpaperCloseExitAnimation">@anim/sliding_out_right</item>
<item name="android:wallpaperIntraOpenEnterAnimation">@anim/sliding_in_right</item>
<item name="android:wallpaperIntraOpenExitAnimation">@anim/sliding_out_right</item>
<item name="android:wallpaperIntraCloseEnterAnimation">@anim/sliding_in_right</item>
<item name="android:wallpaperIntraCloseExitAnimation">@anim/sliding_out_right</item>
</style>

sliding_in_right

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
    android:duration="200"
    android:fromXDelta="100.0%p"
    android:toXDelta="0.0" />

</set>

sliding_out_right

<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false"
android:zAdjustment="top">
<translate
    android:duration="200"
    android:fromXDelta="0.0"
    android:toXDelta="100.0%p" />

</set>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容