অ্যাকশন বার নেভিগেশন মোডগুলি অ্যান্ড্রয়েড এল এ অবমুক্ত করা হয়েছে


203

Android এ "L" লিখে প্রিভিউ জন্য API পরিবর্তন প্রতিবেদন কটাক্ষপাত গ্রহণ, আমি দেখতে যে নেভিগেশান মোড এর সাথে সম্পর্কিত সকল পদ্ধতি ActionBarবর্গ (যেমন setNavigationMode(), addTab(), selectTab(), সি)। এখন অবহেলা করা হয়।

ডকুমেন্টেশন ব্যাখ্যা করে:

অ্যাকশন বার ন্যাভিগেশন মোডগুলি হ্রাস করা হয় এবং ইনলাইন সরঞ্জামদণ্ড অ্যাকশন বারগুলি সমর্থন করে না। পরিবর্তে অন্যান্য সাধারণ নেভিগেশন নিদর্শন ব্যবহার বিবেচনা করুন।

অনুমিত প্রতিস্থাপন কি?

এছাড়াও, "ইনলাইন টুলবার অ্যাকশন বারগুলি" কী নতুন ধারণা? আমি এর আগে শুনেছি বলে মনে হয় না।


এল প্রিভিউর জন্য আপনি দস্তাবেজগুলি কোথায় খুঁজে পেয়েছেন?
কুনো

8
@ ক্লাসেনকে এটি এখনও মূল ডকুমেন্টেশনের সাথে একীভূত করা যায় নি তবে আপনি এটি ডেভেলপার
andঅ্যান্ড্রয়েড

দস্তাবেজের লিঙ্কটির জন্য ধন্যবাদ!
রবার্ট কার্ল

আপনি কী ব্যবহার করেছেন সেট
ন্যাভিগেশনলিস্টের

1
@ শিরিশহেরওয়াডে হ্যাঁ, কারণ অ্যান্ড্রয়েড 5.0 প্রকাশিত হওয়ার সময় এটি মূল ডকুমেন্টেশনে মার্জ হয়েছিল। যাই হোক না কেন, আপনি এখন বিকাশকারী.অ্যান্ড্রয়েড
রেফারেন্স

উত্তর:


179

নতুন অ্যান্ড্রয়েড ডিজাইন সাপোর্ট লাইব্রেরী যোগ TabLayout একটি ট্যাব বাস্তবায়ন মিল প্রদান, ট্যাব জন্য উপাদান নকশা নির্দেশিকা । কীভাবে ট্যাবগুলি প্রয়োগ করতে হয় তার একটি সম্পূর্ণ ওয়াকথ্রু এবং এই ভিডিওতেViewPager পাওয়া যাবে

এখন থামানো হয়েছে: দ্য PagerTabStrip সমর্থন লাইব্রেরির অংশ (এবং কিছু সময়ের জন্য করা হয়েছে) এবং একটি সরাসরি প্রতিস্থাপন হিসেবে কাজ করে। আপনি যদি নতুন গুগল প্লে স্টাইলের ট্যাবগুলিকে পছন্দ করেন তবে আপনি এই পেইজারস্লাইডিংট্যাবস্ট্রিপ লাইব্রেরিটি ব্যবহার করতে পারেন বা এই দেব বাইটস ভিডিওটিতে বর্ণিত গুগল সরবরাহকৃত উদাহরণ স্লাইডিংট্যাববাসিক বা স্লাইডিংট্যাবসুলিয়ান ভাষায় পরিবর্তন করতে পারেন ।


8
এটি পোর্ট্রেট মোডে একটি প্রত্যক্ষ প্রতিস্থাপন, বর্ধিত বর্ধমান বর্ধিত ম্যাটেরিয়াল-টাইপ শিরোনাম ব্যবহারের বোনাস সহ। তবে, ল্যান্ডস্কেপ মোডে অ্যাকশনবার ট্যাবগুলি স্বয়ংক্রিয়ভাবে অ্যাকশন বারে সরে যায়, গুরুত্বপূর্ণ স্ক্রিন অঞ্চলটি মুক্ত করে। সমর্থন লাইব্রেরি সহ এটিকে পরিচালনা করার জন্য কি কোনও পরিষ্কার উপায় জানেন?
ehartwell

9
বিকাশকারী দস্তাবেজ এখনও অ্যাকশন বার ট্যাব ব্যবহার করে বলে। সিম্পি এখনও আপডেট হয়নি? বিকাশকারী.অ্যান্ড্রয়েড
ট্রেনিং / ইমপ্লিমেন্টিং-ন্যাভিগেশন/


2
@ জিউবার্ট - NAVIGATION_MODE_LISTএটি অনেক সহজ, প্রদত্ত যে সমস্ত কিছুই স্পিনার এবং কিছু কলব্যাক সহায়ককে যুক্ত করেছিল ।
ianhanniballake

2
কি জন্য প্রতিস্থাপন NAVIGATION_MODE_LIST? খনি এটিকে
অবনমিত

20

এখন যে অ্যান্ড্রয়েড 5.0 ডক্স উপলভ্য, আমাদের কাছে সরঞ্জামদণ্ড উইজেটের জন্য সরকারী ডকুমেন্টেশন রয়েছে :

অ্যাপ্লিকেশন সামগ্রীর মধ্যে ব্যবহারের জন্য একটি মানক সরঞ্জামদণ্ড।

একটি সরঞ্জামদণ্ড অ্যাপ্লিকেশন বিন্যাসের মধ্যে ব্যবহারের জন্য অ্যাকশন বারগুলির একটি সাধারণকরণ। যদিও একটি কর্ম বার ঐতিহ্যগতভাবে একটি কার্যকলাপ রয়েছে অস্বচ্ছ জানালা সাজসজ্জা ফ্রেমওয়ার্ক দ্বারা নিয়ন্ত্রিত অংশ, একটি টুলবার একটি দৃশ্য অনুক্রমের মধ্যে পাখির কোন অবাধ পর্যায়ে স্থাপন করা যেতে পারে

Toolbarঅ্যাকশন বারটি প্রতিস্থাপন করতে একটি উইজেটও ব্যবহার করা যেতে পারে:

কোনও অ্যাপ্লিকেশন কোনও সরঞ্জামদণ্ডটি setActionBar()পদ্ধতিটি ব্যবহার করে ক্রিয়াকলাপের জন্য অ্যাকশন বার হিসাবে মনোনীত করতে পারে ।

অ্যাকশন বারে ট্যাবগুলির অবমূল্যায়ন সম্ভবত এটির কারণ হতে পারে, যেহেতু সরঞ্জামদণ্ডগুলিতে ট্যাবগুলি সেগুলি ধারণ করতে পারে না।

এছাড়াও এটি অ্যাপকম্প্যাট লাইব্রেরির মাধ্যমে পূর্ববর্তী অ্যান্ড্রয়েড ভার্শনগুলির জন্য উপলব্ধ। আরও তথ্যের জন্য ক্রিস ব্যানসের এই পোস্টটি দেখুন । একটি অংশ:

অ্যান্ড্রয়েড 5.0 একটি নতুন টুলবার উইজেট উপস্থাপন করেছে। এই ActionBar প্যাটার্ন একটি সাধারণীকরণ কিন্তু আপনি দেয় অনেক এটি ব্যবহার আরও নিয়ন্ত্রণ এবং নমনীয়তা। টুলবারটি অন্য শ্রেণীর মতো আপনার শ্রেণিবিন্যাসের একটি দৃশ্য যা আপনার বাকী মতামতের সাথে ইন্টারলিভ করা সহজ করে তোলে, অ্যানিমেটেড করে স্ক্রোল ইভেন্টগুলিতে প্রতিক্রিয়া দেখায়।


53
বুদ্ধিমান এবং ডিফল্ট ব্যবহার করতে সহজ হলে "আরও অনেক নিয়ন্ত্রণ এবং নমনীয়তা" কেবলমাত্র দুর্দান্ত। যদি কিছু নমনীয় হয় তবে এটি কার্যকর করার জন্য আপনার এখানে 20 লাইন দরকার, আমি এটিকে জয় হিসাবে বিবেচনা করি না ...
TWiStErRob

1
@TWiStErRob আমি সম্মত জোর দেওয়া তার, আমার নয় :)
মাটিয়াশ

6
@TWiStErRob আমিও একইভাবে অনুভব করি ... গুগল আরও ভালভাবে নজর রাখবে, এই জাতীয় ক্রিয়াকলাপটি আমাকে পুরানো মাইক্রোসফ্টের স্মরণ করিয়ে দিচ্ছে
সাওরন

13

দেখে মনে হচ্ছে তারা android.widget.Toolbarপ্রসারিত নামে একটি নতুন ক্লাস যুক্ত করেছে ViewGroup। এছাড়াও তারা এতে একটি নতুন পদ্ধতি যুক্ত setActionBar(Toolbar)করেছে Activity। আমি এখনো এটা পরীক্ষিত নি, তবে আপনার মত সব ধরণের মোড়ানো পারেন দেখে মনে হচ্ছে TabWidgets, Spinnersএকটি বা কাস্টম মতামত Toolbarএবং আপনার Actionbar হিসাবে এটি ব্যবহার।


1
কেউ যদি টুলবার উইজেটের সাথে কিছু চেষ্টা করে বা কীভাবে এটি কাজ করা যায় তা জানেন। এটি কি সামঞ্জস্যতা প্যাকেজের অন্তর্ভুক্ত?
সান্দ্রা

একটি সময়ে কটাক্ষপাত আছে plus.google.com/+IanLake/posts/...
Kuno

1
লিঙ্কটির জন্য আপনাকে অনেক ধন্যবাদ ... এখন আমি যদি নতুন অ্যাপ্লিকেশনটি নতুন উপাদান নির্দেশিকা অনুসারে বিকাশ করতে চাই তবে আমার সম্ভবত সরঞ্জামদণ্ডটি উপলভ্য হওয়ার জন্য অপেক্ষা করা উচিত, কারণ যদি আমি অ্যাকশনবারটি ব্যবহার করি তবে আমি সমস্ত কিছু ব্যবহার করব যে অবচয় হয় ..?
সান্দ্রা

1
অ্যাকশনবারটি এখনও একটি স্ট্যান্ডার্ড ডিজাইনের ধরণ হবে। কেবল নেভিগেশন মোডগুলি হ্রাস করা হবে (ট্যাবস বা স্পিনার)। দেখুন developer.android.com/guide/topics/ui/actionbar.html#Tabs এবং developer.android.com/guide/topics/ui/actionbar.html#Dropdown
Kuno

1
আমি মনে করি এটি প্রশ্নের সাথে সম্পর্কিত the নতুন আই / ও ২০১৪ অ্যাপ্লিকেশনটির APK ডাউনলোডের জন্য উপলভ্য, এবং আপনি Plus.google.com/+RomanNurik/posts/PD6MS3feXTT থেকে দেখতে পাচ্ছেন , প্রচুর সরঞ্জামদণ্ড শৈলী ব্যবহৃত হয়েছে । আমাদের কেবল উত্স কোডের জন্য অপেক্ষা করতে হবে, এবং এটির অন্বেষণ করতে হবে :(
সান্দ্রা

4

নতুন Toolbar, একাধিক লাইন বস্তু বৃদ্ধি জন্য ব্যবহার করা যাবে না, যাতে এটা ট্যাবস যোগ করা অসম্ভব।
আপনি যদি এর Toolbarমতো একটি ব্যবহার করতে চান TabWidgetতবে এটিতে কিছু ট্যাব অবজেক্টগুলি সন্নিবেশ করতে পারেন তবে কেবলমাত্র পুরানো হলো শৈলী দিয়ে।

এখানে একটি কাস্টম লাইব্রেরি রয়েছে যা নতুন মেটালিয়াল ডিজাইন অ্যানিমেশনগুলির Toolbarমতো v7 TabWidgetব্যবহার করে তবে এটি পুরানো থেকে একই পদ্ধতি ব্যবহার করে ActionBar Tabs, যাতে আপনি ViewPagerএটির সাথে সংযুক্ত করতে পারেন ।


3

অবহেলিত অ্যাকশনবারের 'প্রতিস্থাপনের' জন্য, আমি আমার অ্যাকশনবার-ধরণের ভেরিয়েবলের ধরণটি পেজারট্যাবস্ট্রিপ-তে পরিবর্তন করেছি, (মন্তব্যে পুরানো কোড) অনুসারে:

// ActionBar bigActionBar;
PagerTabStrip bigActionBar;

~ অ্যাকশনবারের .স্লিটট্যাব (ট্যাবিনডেক্স) এর জন্য একটি 'প্রতিস্থাপন' হ'ল আমার সম্পর্কিত ভিউপ্যাজারের .সেটকারেন্ট আইটেম (ইনট) পদ্ধতিটি (মন্তব্যে পুরানো কোড) ব্যবহার করা ছিল:

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

আশা করি এটি সহায়ক।


1

আমার একই সমস্যা ছিল এবং এই সমাধানটি আমার পক্ষে বেশ সুন্দরভাবে উপযোগী:

ভিউপ্যাজার ধারণ করে লেআউট এক্সএমএল ফাইলটিতে, পেজেরট্যাবস্ট্রিপ প্রদর্শিত হিসাবে যুক্ত করুন:

<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" />

পৃষ্ঠার শিরোনামগুলি নিয়ন্ত্রণ করতে, আপনার ভিউপেজার ফাইলে একটি স্যুইচ স্টেটমেন্ট যুক্ত করুন:

@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;
}

0

ফ্রেগমেন্টটাবহস্টও একটি বিকল্প।

এই কোডটি অ্যান্ড্রয়েড বিকাশকারীর সাইট থেকে এসেছে:

/**
 * 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);
    }
}

1
এই টিউটোরিয়ালটি এখানে এই উত্তরটি অন্তর্ভুক্ত রয়েছে, সুতরাং এটি কাউকে সাহায্য করতে পারে skholingua.com/android-basic/user-interface/compositeitems/…
দেজন

0

অ্যাকশন বার (এখন 'সরঞ্জাম বার' - আরগ) একসাথে রাখার সময় এই টিউটোরিয়ালগুলিকে সহায়ক বলে মনে করেছি যা ম্যাটেরিয়াল ডিজাইনের সাহায্যে স্লাইডিং ট্যাবগুলিকে সমর্থন করে:

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

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

আপনার বিশেষ পরিস্থিতির সাথে মিলে যাওয়ার জন্য আপনাকে এই সংস্থানগুলিকে সংশ্লেষ করতে হবে। উদাহরণস্বরূপ, আপনি exoguru.com টিউটোরিয়ালটি একই স্টাইলে ম্যানুয়ালি ট্যাবগুলি তৈরি করতে চাইবেন না।


দ্বিতীয় লিঙ্কটি মারা গেছে।
jcaruso

@ জ্যাকারুসো যে ডোমেনটির মেয়াদ শেষ হয়ে গেছে বলে মনে হচ্ছে এটি আমার দোষ নয়। ইউটিউব ভিডিওটি এখনও প্রাসঙ্গিক
কিপ 2

1
@ কিপ 2 আমি সম্মত, এটি আপনার দোষ নয়। যাইহোক, আমি প্রত্যেককে পরামর্শ হিসাবে পরামর্শ দিচ্ছি, এই সমস্যার কারণে উত্তরগুলি ব্যাখ্যা করার জন্য লিঙ্কগুলি ব্যবহার করা এড়িয়ে চলুন।
jcaruso

0

সরঞ্জামদণ্ড v7 উইজেট অ্যাপকম্প্যাটটি ব্যবহার করে অবহেলিত নেভিগেশন সরঞ্জামদণ্ডটি পরিচালনা করার জন্য আমার পক্ষে ভাল।

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

0

আমি মনে করি যখন আপনার কাছে সমান গুরুত্বের তিন থেকে পাঁচটি পর্দা থাকে তার জন্য উপযুক্ত প্রতিস্থাপন হ'ল বটমনাভিগেশনঅ্যাক্টিভিটি, এটি টুকরাগুলি স্যুইচ করতে ব্যবহার করা যেতে পারে।

আপনি অ্যান্ড্রয়েড স্টুডিওতে এটির জন্য একটি উইজার্ডের উপস্থিতি লক্ষ্য করবেন, তবে যত্ন নিন তবে অ্যান্ড্রয়েড স্টুডিওতে অতিরিক্ত জটিল বয়লার প্লেট কোড তৈরি করার প্রবণতা রয়েছে।

একটি টিউটোরিয়াল এখানে পাওয়া যাবে: https://android.jlelse.eu/ultimate-guide-to-bottom-navication-on-android-75e4efb8105f

আর একটি মানের টিউটোরিয়াল এখানে অ্যান্ড্রয়েড হাইভে পাওয়া যাবে: https://www.androidhive.info/2017/12/android-working-with-bottom-navication/

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.