2012-08-01 10 views
7

मैं अपने आवेदन में SwipeyTabs का उपयोग कर रहा हूं। मुझे यकीन नहीं है कि टैब सामग्री कैसे भरें। इसमें कोई भी एक्सएमएल नहीं है।एंड्रॉइड: SwipeyTabs कैसे भरें?

मैं इस तरह टैब का उपयोग कर रहा हूँ:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_swipey_tabs); 
    initViewPager(4, 0xFFFFFFFF, 0xFF000000); 
    mSwipeyTabs = (SwipeyTabsView) findViewById(R.id.swipey_tabs); 
    mSwipeyTabsAdapter = new SwipeyTabsAdapter(this); 
    mSwipeyTabs.setAdapter(mSwipeyTabsAdapter); 
    mSwipeyTabs.setViewPager(mPager); 
} 

private void initViewPager(int pageCount, int backgroundColor, int textColor) { 
    mPager = (ViewPager) findViewById(R.id.pager); 
    mPagerAdapter = new ExamplePagerAdapter(this, pageCount, backgroundColor, textColor); 
    mPager.setAdapter(mPagerAdapter); 
    mPager.setCurrentItem(1); 
    mPager.setPageMargin(1); 
} 

और यहाँ है activity_swipey_tabs.xml लेआउट:

<android.ex.com.viewpager.extension.SwipeyTabsView 
    android:id="@+id/swipey_tabs" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#3B3B3B" /> 

<View 
    android:id="@+id/colorline" 
    android:layout_width="fill_parent" 
    android:layout_height="2dip" 
    android:layout_below="@+id/swipey_tabs" 
    android:background="#FF91A438" /> 

<View 
    android:id="@+id/blackline" 
    android:layout_width="fill_parent" 
    android:layout_height="1dip" 
    android:layout_below="@+id/colorline" 
    android:background="#FF000000" /> 

<android.support.v4.view.ViewPager 
    android:id="@+id/pager" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_below="@+id/blackline" /> 

कोई उदाहरण या ट्यूटोरियल हैं?

कोई भी समर्थन अच्छा होगा।

+0

http://stackoverflow.com/questions/10912602/swipeytabs-how-to-create-swipey-tabs-using-actionbarsherlock-library यह –

+2

जांचें आप निश्चित हैं कि मैं क्या देख रहा हूं? यदि हां, उदाहरण के लिए मैं कोई टेक्स्ट व्यू या स्टाल्स श्रोता कैसे सेट कर सकता हूं? बीटीडब्ल्यू धन्यवाद। – Martin

उत्तर

6

SwipeyTabs के टैब वर्चुअल लेआउट की तरह हैं, मेरा मतलब है कि उनके पास स्वयं परिभाषित लेआउट नहीं है। आपको गतिशील रूप से प्रत्येक घटक को परिभाषित करना चाहिए।

मुझे विवरण के साथ समझाएं। उदाहरण के लिए, आपको एक सूची दृश्य (कस्टम) की आवश्यकता है। आप इस तरह लेआउट बनाया:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="70dp" 
    android:padding="5dp" 
    android:background="#ffffff" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="80dp" 
     android:layout_height="60dp" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:src="@drawable/i1" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/imageView1" 
     android:layout_alignParentRight="true" 
     android:textColor="@android:color/black" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/textView2" 
     android:layout_alignTop="@+id/imageView1" 
     android:textColor="@android:color/black" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/imageView1" 
     android:layout_toRightOf="@+id/imageView1" 
     android:textColor="@android:color/black" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

</RelativeLayout> 

अब तुम, मैं ArrayAdapter सहित नहीं कर रहा हूँ इस कस्टम ListView अनुकूल के लिए भी एक ArrayAdapter की जरूरत है।

तो अपने PagerAdapter कक्षा में, ListView परिभाषित करें और इस लेआउट का उपयोग करें। उदाहरण में:

@Override 
public Object instantiateItem(View container, int position) { 
    ListView v = new ListView(mContext); 
    //test_list_layout which is above 
    TestAdapter adapter = new TestAdapter(mContext, R.layout.test_list_layout, objs); 

    v.setAdapter(adapter); 
    ((ViewPager)container).addView(v, 0); 
    v.setSelection(scrollPosition[ position ]); 
    v.setOnScrollListener(new OnScrollListener() {    
     public void onScrollStateChanged(AbsListView view, int scrollState){} 
     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
     scrollPosition[ pos ] = firstVisibleItem; 
     } 
    }); 
    return v; 
} 

अब यह अच्छी तरह से काम कर रहा है। यदि आपको अधिक टैब की आवश्यकता है, तो जैसे एक सेपरेटर के रूप में position पैरामीटर का उपयोग करें। इसमें आपको इस लाइन की आवश्यकता होगी:

((ViewPager) container).removeView((View) container); 

यह सब कुछ है। मुझे उम्मीद है, यह स्पष्ट है।

+0

धन्यवाद, यह काम करता है और अब मैंने जो कुछ भी लिया है उसे पकड़ लिया। – Martin

संबंधित मुद्दे