SwipeBackLayout的使用與源碼分析學(xué)習(xí)

文/程序員男神

前言

這個(gè)小功能也是最近接觸到撑柔,之前只知道這種交互方式,自己并沒有去實(shí)現(xiàn)您访∏Ψ蓿看了一下,才發(fā)現(xiàn)其實(shí)挺簡單的洋只。雖然簡單辆沦,但是用戶在交互方面的體驗(yàn)得到了不少提升。接下來我們看看他的簡單實(shí)用识虚,分析下它的實(shí)現(xiàn)源碼肢扯。


奧尼爾

實(shí)用場景

一個(gè)界面(Activity)通過意圖跳轉(zhuǎn)至下個(gè)子Activity,當(dāng)子模塊的代碼執(zhí)行完畢后想返回到上層界面担锤,我們一般在導(dǎo)航欄左側(cè)放置一個(gè)返回按鈕蔚晨,或者點(diǎn)擊底部的虛擬返回按鍵返回。全面屏?xí)r代的熱潮肛循,讓我們對于手勢的操作更加便捷铭腕。SwipeBackLayout可以通過右滑的操作返回到上個(gè)操作界面。參考SwipeBackLayout的github地址多糠。

使用步驟

1累舷、添加依賴

compile 'me.imid.swipebacklayout.lib:library:1.1.0'

2、設(shè)置需要滑動(dòng)返回Activity的Theme
首先需要在需要滑動(dòng)返回的Activity的AppTheme里添加:

 <item name="android:windowIsTranslucent">true</item>

3夹孔、在BaseActivity中初始化以及設(shè)置屬性

/**
 * 描述: 基類activity
 * 作者|時(shí)間: djj on 2019/1/17 13:45
 * 博客地址: http://www.reibang.com/u/dfbde65a03fc
 */
public abstract class BaseActivity extends SwipeBackActivity {

    private SwipeBackLayout mSwipeBackLayout;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i(TAG, String.format("%s:onCreate", this));
        if (getLayoutId() != 0) {
            setContentView(getLayoutId());
        }
        ButterKnife.bind(this);

        // 可以調(diào)用該方法被盈,設(shè)置是否允許滑動(dòng)退出
        setSwipeBackEnable(true);
        mSwipeBackLayout = getSwipeBackLayout();
        // 設(shè)置滑動(dòng)方向,可設(shè)置EDGE_LEFT, EDGE_RIGHT, EDGE_ALL, EDGE_BOTTOM
        mSwipeBackLayout.setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);
        // 滑動(dòng)退出的效果只能從邊界滑動(dòng)才有效果搭伤,如果要擴(kuò)大touch的范圍只怎,可以調(diào)用這個(gè)方法
        mSwipeBackLayout.setEdgeSize(200);
    }
}

4、創(chuàng)建兩個(gè)activity只需要繼承BaseActivity即可怜俐,第一個(gè)activity添加一個(gè)按鈕跳轉(zhuǎn)到第二個(gè)activity身堡,第二個(gè)activity只需要右滑就可返回第一個(gè)activity

/**
 * 描述: 主界面
 * 作者|時(shí)間: djj on 2019/2/27 13:56
 * 博客地址: http://www.reibang.com/u/dfbde65a03fc
 */
public class MainActivity extends BaseActivity {

    @BindView(R.id.tv_show)
    TextView mTvShow;

    @Override
    protected int getLayoutId() {
        return R.layout.activity_main;
    }

    @Override
    protected void initData() {

    }

    @OnClick(R.id.tv_show)
    public void onViewClicked() {
        startActivity(Main2Activity.class);
    }
}

5、Main2Activity沒有什么操作拍鲤,這邊省略...

源碼分析

源碼分析參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贴谎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子殿漠,更是在濱河造成了極大的恐慌赴精,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绞幌,死亡現(xiàn)場離奇詭異蕾哟,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)莲蜘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門谭确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人票渠,你說我怎么就攤上這事逐哈。” “怎么了问顷?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵昂秃,是天一觀的道長禀梳。 經(jīng)常有香客問我,道長肠骆,這世上最難降的妖魔是什么算途? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮蚀腿,結(jié)果婚禮上嘴瓤,老公的妹妹穿的比我還像新娘。我一直安慰自己莉钙,他們只是感情好廓脆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磁玉,像睡著了一般停忿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚊伞,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天瞎嬉,我揣著相機(jī)與錄音,去河邊找鬼厚柳。 笑死氧枣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的别垮。 我是一名探鬼主播便监,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼碳想!你這毒婦竟也來了烧董?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤胧奔,失蹤者是張志新(化名)和其女友劉穎逊移,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體龙填,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胳泉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岩遗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扇商。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宿礁,靈堂內(nèi)的尸體忽然破棺而出案铺,到底是詐尸還是另有隱情,我是刑警寧澤梆靖,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布控汉,位于F島的核電站笔诵,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏姑子。R本人自食惡果不足惜嗤放,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壁酬。 院中可真熱鬧,春花似錦恨课、人聲如沸舆乔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽希俩。三九已至,卻和暖如春纲辽,著一層夾襖步出監(jiān)牢的瞬間颜武,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工拖吼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鳞上,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓吊档,卻偏偏與公主長得像篙议,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子怠硼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容