안드로이드 개발 잡록 (A)

 

   

-의 조각을 작성 Tablayout + ViewPager의 사용 활동

   ViewPager 아무 문제를 사용하지와 조각 및 다른 상황에서 적은 내용으로, 당신은 각각 다른 조각을 만들 수 있습니다.

   그러나, 조각 변수의 수와 동일한 포맷의 내용이 있다면, 레이아웃 안에 다중화 같은 단편을 사용할 필요가있다. 그러나 시간이 문제가 될 것입니다, 좋은 부하 데이터를 기입

  목록 ViewPager와 TabLayout 만 탭이 정상입니다, 당신이 탭을 클릭하면, 조각은 해당되지 않으며, 빈틈과 상황의 편차가있을 것이다 인터페이스에 미치는 영향 후,

   - 문제 원인 :

    FragmentManager가 활동에 매개 변수를 전달 할 FragmentPagerAdapter를 사용하는, ViewPager를 사용하는 경우, 우리는 쉽게에만 전달할 수 있습니다

   에서 getSupportFragmentManager () (현재의 단편 V4 패킷 앱 패킷 단편 대응 getFragmentManger ()를 포기되었습니다 사용하기 때문에),

   FragmentManager 문제의 존재, 그는 자동으로, 조각을 다시 반복 파괴, 만들지 않도록,하지만이 조각 대응하는 다른 탭으로 우리를 이끌 것입니다

   그것은 성공적으로 생성되지 않았지만, 지속적으로 커버 뒤에 생성되는.

    ViewPager은 기본 3 조각, 그래서 네 번째 탭을 클릭하면, 그것은 빈하지만 반드시 정확하지 조각을로드 할 수 없습니다 미리로드 때문입니다.

   - 솔루션 :

    ViewPager를 사용하여 (1) 첫 번째 경우, 활동

      제목을 저장 TabLayout ViewPager 만 분류를 사용하지 마십시오, ViewPager 위치는하는 조각, 다음 TabLayout 모니터 설정을 넣어

      선택시 tabLayout.addOnSelectedListener (), 탭에 데이터를로드하거나 고유 위치 정보의 조각으로 교체 후 위치 정보를 취득하고.

    

 

    (2) 또 다른 경우는 다중 인터페이스으로부터 선택되는 2 층을 형성하는 조각 ViewPager 외측 조각 BottomNavigationView 공통으로, 중첩

      ViewPager PagerAdapter로 설정하면, 외층에 getChildFragmentManager () 조각을 사용할 수도 있고, 내층 이러한 매니저 다중화 조각하지 않는다

      또한 빈 질문과 잘못 표시되지 않습니다. (사용하지 마십시오)

 

- 상태 표시 줄에 몰두 상단 도구 모음은 화면 상단 덮여

  

  효과를 달성하기 위해, styles.xml에서 대응의 대상으로 한 문장을 추가

 

- 외부 클릭하면 자동으로 글고 인터페이스를 열고 포커스를 취득하지 않습니다, 자동으로 잃게 초점

   설정되지 않은 경우, 글고 자동으로 인터페이스를 입력 할 때, 포커스를 취득 다른 위치에있는 인터페이스를 클릭합니다, 소프트 키보드가 복구되지, 최악의 경험

    (1) 상기 제 1 초점이 자동으로 획득하기 위해 설정되어 있지 않은, 상위에 배치 글고 focusableIn TouchMode를가 = "true"를 추가

  

    (2) 계절의 EditText가 포커스를 잃을 외부를 클릭하십시오 소프트 키보드를 복구

      접근 방식 글고 치기의 포인트는 외부하자가 포커스를 잃을 경우, 클릭 이벤트를 모니터하는 것입니다

  

      이러한 경험은 더 좋을 것이다.

 

- 잠금 화면 잠금을 해제 할 때 추측 인터페이스 팝업

    때로는 잠금을 해제 지문 후, Jingdong 인터페이스가 나타납니다 메인 인터페이스로 돌아가려면 뒤로 단추를 클릭, 그것은 Jingdong를 종료 할 때 다음 Jingdong을 인터페이스를 클릭하거나 이전에 표시하지만, 다시 롤백을 클릭

    다시 메인 화면으로, Jingdong 포인트 다시 한번, 정상적인 과정을 시작합니다.

     의 첫 번째 챕터의 내용과 결합하여 "예술 탐험의 안드로이드 개발,"Jingdong의 추측은, 다른 프로세스의 사용은 자신의 활동을 시작 실행한다는 것입니다

    这时Activity运行在其他进程的任务栈中,当第一次点击京东时,该Activity发现自己本应属于的任务栈启动了,就移动到京东进程的任务栈,

    再次退回主界面,Actvity和任务栈被销毁。

    (近期没使用京东,有机会再研究)

  

--    Activity的启动模式

    - standard ,标准模式,点一下启动一个,无脑入栈

    - singleTop   栈顶复用, 

      如果当前不在栈顶,就创建新实例入栈,和standard表现一致。 

      如果当前活动在栈顶,就不重复创建而调用 onNewIntent()。

      (示例为将 BetaActivity设为 singleTop ,反复启动二三活动 以及重复启动BetaActivity时, 用adb shell 命令看到的栈信息)

     BetaActivity不在栈顶的情况:会和ThirdActivity交替反复创建实例

    BetaActivity在栈顶的情况: 不再创建新实例,栈中活动数不变

 

    -  singleTask  栈内复用

    如果栈内有需要的活动,就将其显示出来。而要显示,就要把在其之上的活动全部出栈。

    需要注意的是,如果两个任务栈分别在前台和后台,当启动后台的活动时,后台任务栈会移动到前台栈之前,成为前台任务栈,而栈中的弹出关系,也遵循

    前面说过的规则。

    -  singleInstance 单例模式

    单独在一个任务栈内,栈中只能有自己一个实例。(实际上也符合singleTask的特征)

    

추천

출처www.cnblogs.com/xfdmyghdx/p/11216991.html