<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Android實現(xiàn)從下往上彈出視差效果

          共 1569字,需瀏覽 4分鐘

           ·

          2022-04-24 09:18

          先看下效果:



          背景


          現(xiàn)在很多App設計會存在瀏覽模式,在沒有登錄情況下點擊相關用戶操作會跳轉(zhuǎn)到登錄頁面LoginActivity,登錄頁面跳轉(zhuǎn)常見的為從左向右,從下往上等視差效果,下面就來講講開啟時從下往上跳轉(zhuǎn)的視差如何來實現(xiàn),網(wǎng)上有很多其他案例,有的是將Activity設置Dialog主題,本人不推薦這種,因為Dialog會涉及到屏幕透明主題這個屬性,處理不好可能會出現(xiàn)問題


          分析


          拋開Activity的束縛,如何可以讓布局從下往上彈出呢?


          其實有很多方法都可以實現(xiàn),popwindow,Dialog,BottomSheetDialogFragment,BottomSheetDialog等等,如果想實現(xiàn)用手向下滑動頁面消失,可以選擇BottomSheetDialogFragment,BottomSheetDialog來實現(xiàn),當前登錄頁LoginActivity我是基于Activity實現(xiàn)的,那是不是我們加個進入動畫不就實現(xiàn)了嗎?答案是可以的



          1、overridependingtransition使用


          說起動畫,我們先看下overridependingtransition各個參數(shù)起到的作用
          overridePendingTransition(int enterAnim, int exitAnim)從參數(shù)我們直觀看到enterAnim是針對將要進入的Activity,而exitAnim將要消失的Activity,如果設置0代表不啟用動畫。


          2、新建 bottom_in.xml(底部彈入動畫)
          <set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:fromYDelta="100%p"        android:toYDelta="0"????????android:duration="400"/>set>


          3、新建 bottom_out.xml(底部退出動畫)
          <set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:fromYDelta="25"        android:toYDelta="100%p"????????android:duration="400"/>set>


          4、LoginActivity實現(xiàn)動畫效果
          @Override    protected void onCreate(Bundle savedInstanceState) {        overridePendingTransition(R.anim.bottom_in,0);        super.onCreate(savedInstanceState);    }    @Override    public void finish() {        overridePendingTransition(0,R.anim.bottom_out);        super.finish();    }

          運行完會發(fā)現(xiàn),進入會出現(xiàn)黑屏效果,退出無動畫效果!!!???


          其實是因為我們給當前棧頂?shù)腁ctivity加了動畫效果,而棧底無動畫效果導致的這種現(xiàn)象,棧底Activity不需要有視差,那我們給棧底Activity加個默認禁止動畫,看看會出現(xiàn)什么效果


          5、新建bottom_silent(禁止動畫)
                      android:duration="500"        android:fromYDelta="0"        android:toYDelta="0" />


          6、LoginActivity實現(xiàn)動畫效果
          @Override    protected void onCreate(Bundle savedInstanceState) {        overridePendingTransition(R.anim.bottom_in,R.anim.bottom_silent);        super.onCreate(savedInstanceState);    }    @Override    public void finish() {        super.finish();        overridePendingTransition(R.anim.bottom_silent,R.anim.bottom_out);    }


          運行完效果如上述gif圖片,注:如果禁止動畫時間小于進出動畫時間,還是會出現(xiàn)黑屏效果,大家注意一下。


          到這里就結束啦。

          瀏覽 104
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色婷婷免费视频在线观看 | 国产对白国语对白 | 人妻大香蕉 | 亚洲欧洲免费视频 | 99在线精品视频观看 |