2013-03-13 77 views
0

我有刪除標籤的問題com.viewpagerindicator.TabPageIndicator我嘗試了很多方法,但沒有工作。如何使用ViewPager刪除TabPageIndicator標籤

這裏是我的代碼:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/indicator" 
     android:layout_height="wrap_content" 
     android:layout_width="fill_parent" 
     /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     /> 

</LinearLayout> 

這裏是我的Java代碼:

package haris.dautovic.main; 

import haris.dautovic.facebook.MainFragment; 
import haris.dautovic.fregmenti.FacebookObavijesti; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import javax.crypto.spec.DESKeySpec; 

import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.FragmentPagerAdapter; 
import android.support.v4.app.FragmentStatePagerAdapter; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.view.ViewPager; 
import android.support.v4.view.ViewPager.OnPageChangeListener; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.LinearLayout; 
import android.widget.ListView; 
import android.widget.TextView; 

import com.slidingmenu.lib.SlidingMenu; 
import com.slidingmenu.lib.app.SlidingFragmentActivity; 
import com.viewpagerindicator.IconPagerAdapter; 
import com.viewpagerindicator.TabPageIndicator; 




public class SampleTabsWithIcons extends SlidingFragmentActivity { 
    private static final List<String> CONTENT = new ArrayList<String>(); 
    private static final List<Integer> ICONS = new ArrayList<Integer>() ; 


    TabPageIndicator indicator; 
    ViewPager pager; 
    FragmentStatePagerAdapter adapter; 
    ListView meni ; 
    ArrayList<MenuItem> lista; 


    Boolean prviObrisan=false; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     CONTENT.add("Facebook"); 
     CONTENT.add("Twitter"); 
     CONTENT.add("Google+"); 
     CONTENT.add("Youtube"); 
     CONTENT.add("Povezivanje"); 

    ICONS.add(R.drawable.perm_group_calendar); 
    ICONS.add(R.drawable.perm_group_camera); 
    ICONS.add(R.drawable.perm_group_device_alarms); 
    ICONS.add(R.drawable.perm_group_location); 
    ICONS.add(R.drawable.perm_group_location); 

     setContentView(R.layout.simple_tabs); 
     setBehindContentView(R.layout.menu); 

     meni =(ListView)findViewById(R.id.listViewMenu2); 

     lista = new ArrayList<MenuItem>(); 

     lista.add(new MenuItem("Chat", R.drawable.chatblank64x64)); 
     lista.add(new MenuItem("Pronađi prijatelja", R.drawable.friendfinder64x64)); 
     lista.add(new MenuItem("Podijeli informacije", R.drawable.share64x64)); 
     lista.add(new MenuItem("Moj Profil", R.drawable.profile64x64)); 
     lista.add(new MenuItem("Postavke", R.drawable.postavke64x64)); 
     lista.add(new MenuItem("Povezivanje", R.drawable.postavke64x64)); 


     meni.setAdapter(new GlavniMeniAdapter(this,lista,getAssets())); 

     getSlidingMenu().setBehindOffset(200); 
     adapter = new GoogleMusicAdapter(getSupportFragmentManager()); 

     pager = (ViewPager)findViewById(R.id.pager); 
     pager.setAdapter(adapter); 

     indicator = (TabPageIndicator)findViewById(R.id.indicator); 
     indicator.setViewPager(pager); 

     // PostaviSlidingMenuZaKonekcije(); 

     System.out.println("on create"); 


    } 

    private void PostaviSlidingMenuZaKonekcije(){ 

     SlidingMenu menuKonekcija = new SlidingMenu (this); 

     menuKonekcija.setMode(SlidingMenu.RIGHT); 
     menuKonekcija.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); 
     menuKonekcija.setBehindOffset(150); 
     menuKonekcija.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); 
     menuKonekcija.setMenu(R.layout.uvezivanjedrugihmreza); 

    } 



    HashMap<Integer,Fragment> map =new HashMap<Integer, Fragment>(); 


    public final ArrayList<Fragment> fregmenti = new ArrayList<Fragment>(); 


    public final class GoogleMusicAdapter extends FragmentStatePagerAdapter implements IconPagerAdapter { 




     public void destroyAllItem() { 
      int mPosition = pager.getCurrentItem(); 
      int mPositionMax = pager.getCurrentItem()+1; 
      if (CONTENT.size() > 0 && mPosition < CONTENT.size()) { 
       if (mPosition > 0) { 
        mPosition--; 
       } 

       for (int i = mPosition; i < mPositionMax; i++) { 
        try { 
         Object objectobject = this.instantiateItem(pager,Integer.valueOf(CONTENT.get(i)) ); 
         if (objectobject != null) 
          destroyItem(pager,Integer.valueOf(CONTENT.get(i)), objectobject); 
        } catch (Exception e) { 

        } 
       } 
      } 
     } 




     public GoogleMusicAdapter(FragmentManager fm) { 

      super(fm); 


      meni.setOnItemClickListener(new AdapterView.OnItemClickListener(){ 

       @Override 
       public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
         long arg3) { 


        LinearLayout parent =(LinearLayout)arg1; 

        TextView naziv =(TextView)parent.getChildAt(1); 


        if (naziv.getText().equals("Chat")) { 



        // adapter.notify(); 

        } 
        else 
        { 
         if (naziv.getText().equals("Pronađi prijatelja")) { 



          System.out.println("Pronađi prijatelja"); 
          } 
          else 
          { 
           if (naziv.getText().equals("Podijeli informacije")) { 

            System.out.println("Podijeli informacije"); 
            } 
            else 
            { 
             if (naziv.getText().equals("Moj Profil")) { 

              System.out.println("Moj Profil"); 


//            CONTENT.remove(0); 
//            ICONS.remove(0); 
//            adapter.notifyDataSetChanged(); 


              } 
              else 
              { 
               if (naziv.getText().equals("Postavke")) { 




                }else { 

                 if (naziv.getText().equals("Povezivanje")){ 
                  pager.setCurrentItem(4); 

                 } 


                } 


              } 

            } 

          } 
        } 



       } 


      }); 
     } 



     @Override 
     public void destroyItem(ViewGroup container, int position, Object object) { 

      super.destroyItem(container, position, object); 
      // map.remove(position); 

//   if (position >= getCount()) { 
//    FragmentManager manager = ((Fragment) object).getFragmentManager(); 
//    FragmentTransaction trans = manager.beginTransaction(); 
//    trans.remove((Fragment) object); 
//    trans.commit(); 
//   } 
     } 

     @Override 
     public Fragment getItem(int position) { 

      if(position==4)// uvazivanje mreza 
      { 



       haris.dautovic.facebook.MainFragment f = new MainFragment(); 

       map.put(position,f); 
       return f; 


      }else 
      { 
       if (position==0)//facebook obavijesti 
       { 

        FacebookObavijesti fb_obav = new FacebookObavijesti(); 
        map.put(position, fb_obav); 
        return fb_obav; 
       } 
      } 


      haris.dautovic.facebook.MainFragment f = new MainFragment(); 
      map.put(position,f); 
       return f;   

     } 

     @Override 
     public CharSequence getPageTitle(int position) { 

      return CONTENT.get(position); 
     } 

     @Override public int getIconResId(int index) { 


      return ICONS.get(index); 
     } 

     @Override 
     public int getCount() { 


      return CONTENT.size(); 
     } 




// 
//  @Override 
//  public int getItemPosition(Object object){ 
//  super.getItemPosition(object); 
//  
//   return adapter.POSITION_NONE; 
//  } 
//  


    } 


} 

回答

0

這裏是SOLU重刑:

爲刪除選項卡的功能:

 public void RemoveTab(Integer position) { 

     CONTENT.remove(position); 
     ICONS.remove(position); 

     adapter = new GoogleMusicAdapter(getSupportFragmentManager()); 
     pager.setAdapter(adapter); 
     indicator = (TabPageIndicator) findViewById(R.id.indicator); 
     indicator.setViewPager(pager); 

     indicator.notifyDataSetChanged(); 
     adapter.notifyDataSetChanged(); 
} 

和@覆蓋的getItem功能:

@Override 
public Fragment getItem(int position) { 

    if (CONTENT.get(position).equals("Connection")) { 

     MainFragment f = new MainFragment(); 
     return f; 

    } else { 
     if (CONTENT.get(position).equals("Facebook")) { 

      FacebookNews fb_news = new FacebookNews(); 
      return fb_news; 
     } 
    } 

    return haris.dautovic.main.BaseFragment.newInstance(CONTENT.get(position), position); 

} 
-1

嘗試下面的XML

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <com.viewpagerindicator.TabPageIndicator 
     android:id="@+id/indicator" 
     android:layout_height="0dp" 
     android:layout_width="fill_parent" 
     android:visibility="gone" /> 
    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="fill_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     /> 

</LinearLayout> 
+0

也許你不明白我的問題,我嘗試從代碼中刪除標籤:/個由一個 – 2013-03-13 13:10:51

+0

哦。我懂了。我想你想刪除所有標籤。 :D – 2013-03-13 13:12:52

+0

嗯。好運。 :) – 2013-03-13 13:15:56