android - Fragment切换的详细执行流程是怎样的?
高洛峰
高洛峰 2017-04-17 16:59:11
0
3
833
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

모든 응답(3)
左手右手慢动作

조각 전환에는 두 가지 전략이 있습니다

1. 현재 조각을 바꾸려면 교체를 사용하세요.
2. 표시하려는 조각을 표시하고 다른 조각을 숨기려면 add 및 hide 메소드를 사용하세요. 이 방법은 첫 번째 방법과 비교할 때 필요하지 않습니다. 전환할 때마다 데이터를 로드하지만 메모리 소모가 약간 더 큽니다.

조각+뷰페이지

뷰페이지 슬라이딩을 준비하기 위해 현재 조각과 인접한 조각이 로드됩니다.

라디오버튼

현재 조각만 로드

전환 전략을 선택할 때 두 번째 옵션을 선택하는 것이 좋습니다

伊谢尔伦

질문 1과 2를 기록하여 직접 확인하실 수 있으며, 이는 향후 귀하에게 더 큰 감동을 주고 더 효과적인 결과를 가져올 것입니다.
새로고침 기능은 어떤 기능인지 모르겠습니다. 마지막 기능은 onKeyDown에서만 판단하면 됩니다. 이 코드를 적용하면 문제가 없을 것입니다.

@Override
    공개 부울 onKeyDown(int keyCode, KeyEvent 이벤트) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            //한 번 눌러 종료하는 것을 방지합니다.
            if (System.currentTimeMillis() - mExitTime > 2000) {
                ToastUtils.showShort("바탕 화면으로 돌아가려면 다시 클릭하세요.");
                mExitTime = System.currentTimeMillis();
            } 또 다른 {
                마치다();
            }
            사실을 반환;
        }
        return super.onKeyDown(keyCode, 이벤트);
    }
大家讲道理

Finish는 현재 활동을 종료합니다. 원하는 효과를 얻으려면 모든 활동이 다음 활동을 상속받도록 하세요. 물론 직접 확인해야 할 다른 방법도 있습니다.

공개 클래스 BaseActivity는 활동을 확장합니다.
    
    비공개 긴 종료 시간;
    
    BroadcastReceiver ExitReceiver = 새로운 BroadcastReceiver() {

        @보수
        public void onReceive(컨텍스트 컨텍스트, 의도 의도) {
            문자열 작업 =intent.getAction();
            if (action.equals(ExitUtils.EXIT)) {
                마치다();
            }
        }
    };

    @보수
    protected void onCreate(Bundle saveInstanceState) {
        super.onCreate(savedInstanceState);
        IntentFilter 필터 = 새로운 IntentFilter();
        filter.addAction(ExitUtils.EXIT);
        this.registerReceiver(exitReceiver, 필터);
        exitTime = System.currentTimeMillis();
    }

    @보수
    보호 무효 onDestroy() {
        super.onDestroy();
        this.unregisterReceiver(exitReceiver);
    }

    @보수
    공개 부울 onKeyDown(int keyCode, KeyEvent 이벤트) {
        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getAction() == KeyEvent.ACTION_DOWN) {
            if ((System.currentTimeMillis() -exitTime) > 2000) {
                Toast.makeText(getApplicationContext(), "프로그램을 종료하려면 다시 누르세요.",
                        Toast.LENGTH_SHORT).show();
                exitTime = System.currentTimeMillis();
            } 또 다른 {
                인텐트exitIntent = new Intent();
                exitIntent.setAction(ExitUtils.EXIT);
                getApplicationContext().sendBroadcast(exitIntent);
            }
            사실을 반환;
        }

        거짓을 반환;
    }
}
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿