2017-03-23 7 views
0

하단 탐색 바가있는 Android 앱을 만들었습니다. 거친 하단 탐색 모음을 사용하고 각 항목에 대한 의도를 전달했습니다. 각 활동마다 다시 바텀 바를 만들었습니다. 그러나 문제는 새로운 활동이 생성되는 동안 선택한 기본 항목이 재설정되는 것입니다. 제발 도와주세요.거친 하단 바는 기본 활동을 설정하는 중입니다.

+0

에 오신 것을 환영합니다 SO :

는 다음 코드처럼 뭔가를 얻을 수 있습니다! [좋은 질문을하는 방법] (http://stackoverflow.com/help/how-to-ask)을 방문하여 [최소한의 완전하고 검증 가능한 예제] (http://stackoverflow.com/help/mcve)를 제공하십시오.) 당신이 지금까지 가지고있는 것의. – Olaia

답변

0

대신 단편을 사용하고 바둑판을 활동에 배치하고 프레임 율로 처리해야합니다.

MainActivity.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <com.roughike.bottombar.BottomBar 
     android:id="@+id/bottomBar" 
     android:layout_width="match_parent" 
     android:layout_alignParentBottom="true" 
     app:bb_tabXmlResource="@xml/bottombar_tabs" 
     android:layout_height="60dp" 
     app:bb_inActiveTabColor="@color/inActiveTabColor" 
     app:bb_inActiveTabAlpha="0.8" 
     app:bb_activeTabAlpha="1" 
     app:bb_showShadow="false"/> 

    <FrameLayout 
     android:id="@+id/fragment_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/imageview_logo" 
     android:layout_above="@id/bottomBar" 
     android:layout_alignParentStart="true"> 
    </FrameLayout> 
</RelativeLayout> 

MainActivity.java

in your onCreate method(), do the following. 


    bottomBar = (BottomBar) findViewById(R.id.bottomBar); 
    bottomBar.selectTabAtPosition(FIRST_FRAGMENT_INDEX); //Default: FIRST 
    bottomBar.setOnTabSelectListener(new OnTabSelectListener() { 

     private int last_index = FIRST_FRAGMENT_INDEX; 

     @Override 
     public void onTabSelected(@IdRes int tabId) { 

      //Creating the Fragment transaction 
      FragmentTransaction transaction = fragmentManager.beginTransaction(); 

      switch (tabId) { 
       case R.id.tab_SECOND: 
        if (SECOND_FRAGMENT_INDEX > last_index) { 
         FragmentArrayList.get(SECOND_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.RIGHT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_right, R.animator.slide_to_left); 
        } else if (SECOND_FRAGMENT_INDEX < last_index) { 
         FragmentArrayList.get(SECOND_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.LEFT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_left, R.animator.slide_to_right); 
        } 
        transaction.replace(R.id.fragment_container, FragmentArrayList.get(SECOND_FRAGMENT_INDEX)); 
        last_index = SECOND_FRAGMENT_INDEX; 
        break; 

       case R.id.tab_FIRST: 
        if (FIRST_FRAGMENT_INDEX > last_index) { 
         FragmentArrayList.get(FIRST_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.RIGHT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_right, R.animator.slide_to_left); 
        } else if (FIRST_FRAGMENT_INDEX < last_index) { 
         FragmentArrayList.get(FIRST_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.LEFT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_left, R.animator.slide_to_right); 
        } 
        transaction.replace(R.id.fragment_container, FragmentArrayList.get(FIRST_FRAGMENT_INDEX)); 
        last_index = FIRST_FRAGMENT_INDEX; 
        break; 

       case R.id.tab_THIRD: 
        if (THIRD_FRAGMENT_INDEX > last_index) { 
         FragmentArrayList.get(THIRD_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.RIGHT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_right, R.animator.slide_to_left); 
        } else if (THIRD_FRAGMENT_INDEX < last_index) { 
         FragmentArrayList.get(THIRD_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.LEFT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_left, R.animator.slide_to_right); 
        } 
        transaction.replace(R.id.fragment_container, FragmentArrayList.get(THIRD_FRAGMENT_INDEX)); 
        last_index = THIRD_FRAGMENT_INDEX; 
        break; 

       case R.id.tab_FOURTH: 
        if (FOURTH_FRAGMENT_INDEX > last_index) { 
         FragmentArrayList.get(FOURTH_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.RIGHT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_right, R.animator.slide_to_left); 
        } else if (FOURTH_FRAGMENT_INDEX < last_index) { 
         FragmentArrayList.get(FOURTH_FRAGMENT_INDEX).setEnterTransition(new Slide(Gravity.LEFT)); 
         //transaction.setCustomAnimations(R.animator.slide_from_left, R.animator.slide_to_right); 
        } 
        transaction.replace(R.id.fragment_container, FragmentArrayList.get(FOURTH_FRAGMENT_INDEX)); 
        last_index = FOURTH_FRAGMENT_INDEX; 
        break; 
      } 
      transaction.commit(); 
     } 

    });