6

Uygulamamdaki en yeni tasarım destek kitaplığından TabLayout kullandım. Sekmeler, her bir sekme için parçaları yükleyen bir görüntüleyiciye eklenir. Görüntüleme sekmesi, kullanıcı tarafından seçilen sekme için fragmanı yükleyene kadar tüm sekmeleri devre dışı bırakmak istiyorum. Tablayout'u devre dışı bırakamam veya tıklanamaz hale getiremiyorum. setEnabled(false) ve setClickable(false) kullanmıştım, ancak çalışmıyor. setVisiblity(View.GONE) kullanarak görünmez hale getirebilirim, ancak sekmelerin her zaman görünür olmasını istiyorum.TabLayout'taki Sekmeleri Devre Dışı Bırakma

tabLayout = (TabLayout) findViewById(R.id.tabLayout); 
    tabLayout.setTabGravity(TabLayout.GRAVITY_FILL); 
    tabLayout.setTabMode(TabLayout.MODE_FIXED); 
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.near_me_hover).setTag(1)); 
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.all_hostels).setTag(2)); 
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.top_five).setTag(3)); 
    tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.advanced_search).setTag(4)); 
    tabLayout.setEnabled(false); 
    tabLayout.setClickable(false); 

XML

android.support.design.widget.TabLayout
android: id = "@ + id/tabLayout" android: layout_width = "match_parent"
android: layout_height = "0dp"
android: layout_weight = "0.15"
android: scrollbars = "horizontal"
android: Sekme tıklama dinleyici tarafından uygulanan 3 yöntem vardır

 @Override 
     public void onTabSelected(TabLayout.Tab tab) { 
      switch (tab.getPosition()) { 
       case 0: 
        viewPager.setCurrentItem(tab.getPosition()); 
        tab.setIcon(R.drawable.near_me_hover); 
        break; 
       case 1: 
        viewPager.setCurrentItem(tab.getPosition()); 
        tab.setIcon(R.drawable.all_hostels_hover); 
        break; 
       case 2: 
        viewPager.setCurrentItem(tab.getPosition()); 
        tab.setIcon(R.drawable.top_five_hover); 
        break; 
       case 3: 
        viewPager.setCurrentItem(tab.getPosition()); 
        tab.setIcon(R.drawable.advanced_search_hover); 
        break; 
      } 
     } 

     @Override 
     public void onTabUnselected(TabLayout.Tab tab) { 
      switch (tab.getPosition()) { 
       case 0: 
        tab.setIcon(R.drawable.near_me); 
        break; 
       case 1: 
        tab.setIcon(R.drawable.all_hostels); 
        break; 
       case 2: 
        tab.setIcon(R.drawable.top_five); 
        break; 
       case 3: 
        tab.setIcon(R.drawable.advanced_search); 

        break; 
      } 

     } 

     @Override 
     public void onTabReselected(TabLayout.Tab tab) { 
     } 
    }); 
    viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     } 

     @Override 
     public void onPageSelected(int position) { 
      tabLayout.getTabAt(position).select(); 
     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 

cevap

0

splitMotionEvents = "false">, bunlardan biri onTabSelected olan() sizin parçası başlatıldı olup olmadığını kontrol etmek için bir boolean durumunu koydu. Daha sonra bu koşul yerine getirilirse işlemin gerçekleşmesine izin verin. Ayrıca parça kodundan sonra sekmeleri başlatmak

+1

Herhangi bir örnek kod sağlayabilir misiniz? –

+0

Şu ana kadar denediğiniz şeyi yayınlayabilir misiniz –

+0

Zaten kullandığım kodu yayınladım. –

-2

Eğer TabLayout üzerinde bir sekme düğmesini devre dışı demek, o zaman bu kodu deneyin:

tabHost.getTabWidget().getChildTabViewAt(your_index).setEnabled(false); 
+2

Tabhost, kullanmış olduğum tablayouttan farklı değil mi? –

+0

Herhangi bir Konuya sahip olup olmadığını deneyebilir, sonra kontrol edeceğimi bana bildirin. –

+0

Sanırım tasarım destek kitaplığından tabhost ve tablayout tamamen farklı. Yani bu yöntemi kullanamam. –

3

bir püf:

Başka boş şeffaf bir görünüm koyabilirsiniz şartı yerine getirinceye kadar tablayout üzerine. Sekmeleri etkinleştirmeniz/göstermeniz gerektiğinde, yalnızca boş görünümü gizleyin.

İlgili konular