BadgeView und SlidingTabStrip Klickfehler

Ich verwende einen Schieberegler von:

https: //developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.htm

und BadgeView von:

https: //github.com/jgilfelt/android-viewbadge

i füge einfach diese Codezeilen zu @ hinSlidingTabLayout, um auf die einzelnen Registerkarten zuzugreifen:

    public SlidingTabStrip getTabStrip() {
    return mTabStrip;
}

so in fragmenta kann ich folgenden Code verwenden, um Badgeview zu jedem Tab hinzuzufügen:

public class FragmentA extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View fragmentView = inflater.inflate(R.layout.fragment_a,container,false);

        Button b1 = (Button) fragmentView.findViewById(R.id.tab1_button_fragmenta);
        b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                View v = ((MainActivity)getActivity()).mSlidingTabLayout.getTabStrip().getChildAt(0);
                BadgeView badge = new BadgeView(getActivity(), v);
                badge.setText("1");
                badge.show();
            }
        });

        Button b2 = (Button) fragmentView.findViewById(R.id.tab2_button_fragmenta);
        b2.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                View v = ((MainActivity)getActivity()).mSlidingTabLayout.getTabStrip().getChildAt(1);
                BadgeView badge = new BadgeView(getActivity(), v);
                badge.setText("2");
                badge.show();
            }
        });

        Button b3 = (Button) fragmentView.findViewById(R.id.tab3_button_fragmenta);
        b3.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                View v = ((MainActivity)getActivity()).mSlidingTabLayout.getTabStrip().getChildAt(2);
                BadgeView badge = new BadgeView(getActivity(), v);
                badge.setText("3");
                badge.show();
            }
        });

        return fragmentView;
    }

und das Fragmentlayout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFCC00" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_margin="16dp"
        android:text="This is Fragment A"
        android:textAppearance="?android:attr/textAppearanceLarge" />
   <Button
        android:id="@+id/tab1_button_fragmenta"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/textView"
        android:text="Add Badge To Tab 1" />

    <Button
        android:id="@+id/tab2_button_fragmenta"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tab1_button_fragmenta"
        android:text="Add Badge To Tab 2" />

    <Button
        android:id="@+id/tab3_button_fragmenta"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tab2_button_fragmenta"
        android:text="Add Badge To Tab 3" />


</RelativeLayout>

Das Ergebnis ist

Aber nachdem ich BadgeView hinzugefügt habe, ist die Funktionalität zum Klicken auf Registerkarten weg. Daher kann ich nicht auf Registerkarten klicken, um zu anderen Seiten zu navigieren. kann mir jemand helfen was zu tun ist?

s gibt eine Hauptaktivität für diejenigen, die sich nur auf die Lösung konzentrieren möchten und nicht ihre Zeit damit verschwenden, ein Projekt zu erstellen: -)

public class MainActivity extends FragmentActivity {

    ViewPager viewPager=null;
    SlidingTabLayout mSlidingTabLayout = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewPager= (ViewPager) findViewById(R.id.pager);

       FragmentManager fm = getSupportFragmentManager();

        viewPager.setAdapter(new MyAdapter(fm));
        mSlidingTabLayout = (SlidingTabLayout)findViewById(R.id.sliding_tabs);
        mSlidingTabLayout.setViewPager(viewPager);

        viewPager.setAdapter(new MyAdapter(getSupportFragmentManager()));
        mSlidingTabLayout.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i2) {
            }

            @Override
            public void onPageSelected(int i) {
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });




        }

class MyAdapter extends FragmentStatePagerAdapter
{

    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        Fragment fragment=null;
        if(i==0)
        {
            fragment=new FragmentA();
        }
        if(i==1)
        {
            fragment=new FragmentB();
        }
        if(i==2)
        {
            fragment=new FragmentC();
        }
        return fragment;
    }

    @Override
    public int getCount() {
        return 3;
    }
    @Override
    public CharSequence getPageTitle(int position) {
        return ("Tab" + position);
    }
}

}

und activity_main:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical">

    <com.example.tabbadge.SlidingTabLayout
          android:id="@+id/sliding_tabs"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
           />

<android.support.v4.view.ViewPager

    android:id="@+id/pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</android.support.v4.view.ViewPager>
</LinearLayout>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage