Soru swipeable sekmeler için simge nasıl eklenir?


Kodunu indiriyorum İşte Sekmelerle ikonları dağıtmak istiyorum nasıl yardımcı olabilir lütfen bana yardım edin.

enter image description here

 public class MainActivity extends FragmentActivity implements
            ActionBar.TabListener {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private ActionBar actionBar;
    // Tab titles
    private String[] tabs = { "Text", "Photo", "Record" ,"Tag"};


    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @SuppressLint("NewApi")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Initilization
        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        final int[] ICONS = new int[] {
            R.drawable.ic_launcher,
            R.drawable.ic_launcher,
            R.drawable.ic_launcher,
            R.drawable.ic_launcher,
    };

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

        // Adding Tabs
        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));


        }

        /**
         * on swiping the viewpager make respective tab selected
         * */
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

            @Override
            public void onPageSelected(int position) {
                // on changing the page
                // make respected tab selected
                actionBar.setSelectedNavigationItem(position);
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
            }
        });
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        // on tab selected
        // show respected fragment view
        viewPager.setCurrentItem(tab.getPosition());
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    }

}

24
2018-02-03 13:29


Menşei




Cevaplar:


For döngüsünüzde .setIcon (resources.getDrawable (DrawableIDHere)) ekleyin ve ayrıca for döngüsünüzü biraz değiştirin.

// Adding Tabs
for (int i=0; i < tabs.length; i++)
{
actionBar.addTab(actionBar.newTab().setText(tabs[i])
                         .setIcon(resources.getDrawable(ICONS[i]))
                         .setTabListener(this));
}//endfor

Ayrıca, doğru çizilebilir kimlikleri ICONS dizininize koymayı da unutmayın!


24
2018-02-03 23:47



Metin boyutunu nasıl artırabiliriz .... ??? - Daya
.setIcon (resources.GetDrwable (ICONS [i])) kaynakları hataya çözümlenemiyor .. bu nedir? - Shankar Regmi
kullanman gerek getResources() yerine - ojonugwa ochalifu


Eğer kullanıyorsanız TabLayout, sadece şunu yapın (Bu örnek üç sekme kullanır):

 //An array containing your icons from the drawable directory
 final int[] ICONS = new int[]{
            R.drawable.icon_1,
            R.drawable.icon_2,
            R.drawable.icon_3
    };

    //Get reference to your Tablayout
    TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(mViewPager);

    tabLayout.getTabAt(0).setIcon(ICONS[0]);
    tabLayout.getTabAt(1).setIcon(ICONS[1]);
    tabLayout.getTabAt(2).setIcon(ICONS[2]);

24
2017-12-31 05:55



Teşekkürler! Bu benim için çalıştı. Diğer ilgili SO sorularındaki çözümler "kullanımdan kaldırılmış" kelimelerini işaretlemektedir. - Woppi


// here you add an array of your icon   
 final int[] ICONS = new int[] {
                    R.drawable.ic_launcher,
                    R.drawable.ic_launcher,
                    R.drawable.ic_launcher,
                    R.drawable.ic_launcher,
            };

    // add this following code to solve your problem
    // here NewsFeedActivity.this.getResources() is used to get the drawable folder resource
    // instead of NewsFeedActivity you have to use your activity name here  
    for (int i=0; i < tabs.length; i++)
            {
            actionBar.addTab(actionBar.newTab().setText(tabs[i])
                                     .setIcon(NewsFeedActivity.this.getResources().getDrawable(ICONS[i]))
                                     .setTabListener(this));
            }//endfor

4
2017-09-30 06:26



Sadece kod değil, yorum yapmak daha iyidir - ekostadinov
Yorumumu kodumun içine ekledim ve bu benim taşma işinde ilk yorumum. - user2480902
Bence kod oldukça açıklayıcı ve kod iyi yorumlandı. Gönderin için teşekkür ederim. - Jeremie


Selam söyle ViewPagerIndicator kütüphane.

Bu, kaydırılabilir özellikli sekmeler için çok iyi bir örnektir.


0
2018-02-03 13:37



3. taraf çözümlere gerek yok - Ali Karaca