Programing

작업 표시 줄 탐색 모드는 Android L에서 더 이상 사용되지 않습니다.

lottogame 2020. 5. 8. 08:10
반응형

작업 표시 줄 탐색 모드는 Android L에서 더 이상 사용되지 않습니다.


안드로이드 "L"미리보기에 대한 API은 diff 보고서에서 살펴보면, 내가 볼 것을 탐색 모드와 관련된 모든 방법 ActionBar클래스 (예 : setNavigationMode(), addTab(), selectTab(), C). 더 이상 사용되지 않습니다.

설명서는 다음을 설명합니다.

작업 표시 줄 탐색 모드는 더 이상 사용되지 않으며 인라인 도구 모음 작업 표시 줄에서 지원되지 않습니다. 다른 일반적인 탐색 패턴을 대신 사용해보십시오.

대체품은 무엇입니까?

또한 "인라인 툴바 작업 표시 줄"이 새로운 개념입니까? 전에는 들어 본 적이 없습니다.


새로운 Android 디자인 지원 라이브러리TabLayout을 추가 하여 탭의 재질 디자인 지침 과 일치하는 탭 구현을 제공 합니다 . 탭을 구현하는 방법에 대한 전체 연습은 이 비디오ViewPager 에서 찾을 수 있습니다.

지금은 사용되지 않는 : PagerTabStrip가 지원 라이브러리의 일부 (그리고 약간의 시간이었다)와 직접 대체 역할을합니다. 최신 Google Play 스타일 탭을 선호하는 경우 PagerSlidingTabStrip 라이브러리를 사용 하거나이 Dev Bytes 비디오에 설명 된대로 Google 제공 예제 SlidingTabsBasic 또는 SlidingTabsColors 중 하나를 수정할 수 있습니다 .


이제 Android 5.0 문서를 사용할 수 있으므로 툴바 위젯에 대한 공식 문서 가 있습니다 .

응용 프로그램 컨텐츠 내에서 사용하기위한 표준 도구 모음.

툴바는 응용 프로그램 레이아웃 내에서 사용하기위한 작업 표시 줄의 일반화입니다. 액션 바는 전통적으로 프레임 워크에 의해 제어되는 액티비티의 불투명 윈도우 데코의 일부이지만 툴바는 뷰 계층 내에서 임의의 중첩 레벨에 배치 할 수 있습니다 .

Toolbar위젯은 작업 표시 줄을 대체하는 데 사용할 수 있습니다 :

애플리케이션은 setActionBar()메소드를 사용하여 툴바를 활동의 조치 표시 줄로 지정할 수 있습니다 .

툴바는 탭 자체를 포함 할 수 없으므로 작업 표시 줄에서 탭이 사용되지 않을 가능성이 높습니다.

또한 appcompat 라이브러리를 통해 이전 Android 버전에서 사용할 수 있습니다. 자세한 내용 은 Chris Banes의이 게시물 을 참조하십시오. 발췌 :

Android 5.0에는 새로운 툴바 위젯이 도입되었습니다. 이것은 ActionBar 패턴의 일반화이지만 사용에있어 훨씬 더 많은 제어와 유연성을 제공합니다. 툴바는 다른 계층 구조와 마찬가지로 계층 구조의보기로, 나머지보기와 인터리브하고 애니메이션하고 스크롤 이벤트에 반응하는 것이 더 쉽습니다.


그들이 android.widget.Toolbar확장 하는 새로운 클래스를 추가 한 것 같습니다 ViewGroup. 또한에 새로운 방법을 추가 setActionBar(Toolbar)했습니다 Activity. 나는 아직 테스트하지 않은,하지만 당신은 모든 종류의 포장 수있는 것 같습니다 TabWidgets, Spinners으로 또는 사용자 정의보기를 Toolbar하고 실행 바로 사용합니다.


새로운 Toolbar라인은 여러 라인 객체를 팽창시키는 데 사용할 수 없으므로 탭을 추가 할 수 없습니다. 비슷한
것을 사용하려면 일부 탭 객체를 삽입 할 수 있지만 이전 Holo 스타일에서만 사용할 수 있습니다.ToolbarTabWidget

여기 에 새로운 머티리얼 디자인 애니메이션 Toolbar과 같이 v7을 사용하는 커스텀 라이브러리가 TabWidget있지만 이전과 동일한 방법을 사용 ActionBar Tabs하므로에 연결할 수 ViewPager있습니다.


더 이상 사용되지 않는 ActionBar의 '대체'를 위해 ActionBar 유형 변수의 유형을 PagerTabStrip으로 변경했습니다 (이전 주석의 주석).

// ActionBar bigActionBar;
PagerTabStrip bigActionBar;

~ actionBar의 .selectTab (tabindex)에 대한 '대체'는 관련 ViewPager의 .setCurrentItem (int) 메소드를 다음과 같이 사용했습니다 (이전 주석 주석).

/*
ActionBar.Tab eventTab = bigActionBar.getTabAt(2);
bigActionBar.selectTab(eventTab);
*/
mViewPager.setCurrentItem(2);

이것이 도움이 되길 바랍니다.


나는 같은 문제가 있었고이 솔루션은 나에게 아주 잘 어울렸다.

viewpager가 포함 된 레이아웃 xml 파일에서 다음과 같이 PagerTabStrip을 추가하십시오.

<android.support.v4.view.PagerTabStrip
    android:id="@+id/pager_tab_strip"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="top"
    android:background="#996633"
    android:textColor="#CCCCCC"
    android:paddingTop="5dp"
    android:paddingBottom="5dp" />

페이지 제목을 제어하려면 ViewPager 파일에 switch 문을 추가하십시오.

@Override
public CharSequence getPageTitle(int position)
{
    switch (position)
    {
    case 0:
        return "Page 1";

    case 1:
        return "Page 2";

    case 2:
        return "Page 3";

    }

    return null;
}

FragmentTabHost도 옵션입니다.

이 코드는 Android 개발자 사이트에서 가져온 것입니다.

/**
 * This demonstrates how you can implement switching between the tabs of a
 * TabHost through fragments, using FragmentTabHost.
 */
public class FragmentTabs extends FragmentActivity {
    private FragmentTabHost mTabHost;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.fragment_tabs);
    mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

    mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
            FragmentStackSupport.CountingFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
            LoaderCursorSupport.CursorLoaderListFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),
            LoaderCustomSupport.AppListFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"),
            LoaderThrottleSupport.ThrottledLoaderListFragment.class, null);
    }
}

머티리얼 디자인으로 슬라이딩 탭을 지원하는 액션 바 (현재 '툴바'-argh)를 구성하는 동안이 튜토리얼이 도움이되었습니다.

https://www.youtube.com/watch?v=Fl0xMuo10yA

http://www.exoguru.com/android/material-design/navigation/android-sliding-tabs-with-material-design.html

특정 상황에 맞게 이러한 리소스를 합성해야합니다. 예를 들어 exoguru.com 튜토리얼과 동일한 스타일로 탭을 수동으로 생성하지 않을 수 있습니다.


Well for me to handle the deprecated navigation toolbar by using toolbar v7 widget appcompat.

    setSupportActionBar(toolbar);
    getSupportActionBar().setSubtitle("Feed Detail");
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //goToWhere
        }
    });

I think a suitable replacement for when you have three to five screens of equal importance is the BottomNavigationActivity,this can be used to switch fragments.

You will notice a wizard exists for this in Android Studio, take care however as Android Studio has a tendency to produce overly complex boiler plate code.

A tutorial can be found here: https://android.jlelse.eu/ultimate-guide-to-bottom-navigation-on-android-75e4efb8105f

Another quality tutorial can be found at Android Hive here: https://www.androidhive.info/2017/12/android-working-with-bottom-navigation/

참고URL : https://stackoverflow.com/questions/24473213/action-bar-navigation-modes-are-deprecated-in-android-l

반응형