2012-08-01 12 views
7

Estoy usando SwipeyTabs en mi aplicación. No estoy seguro de cómo llenar el contenido de las pestañas. Ni siquiera tiene ningún xml propio.Android: ¿Cómo llenar SwipeyTabs?

estoy usando pestañas de la siguiente manera:

@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); 
} 

Y aquí es activity_swipey_tabs.xml diseño:

<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" /> 

¿Hay ejemplos o tutoriales?

Cualquier soporte sería genial.

+0

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

+2

¿Seguro que es esto lo que estoy buscando? En caso afirmativo, por ejemplo, ¿cómo puedo configurar cualquier oyente TextView o sthelse? Por cierto gracias. – Martin

Respuesta

6

Las pestañas de SwipeyTabs son como el diseño virtual, es decir, no tienen un diseño propio definido. Debe definir cada componente de forma dinámica.

Déjame explicarte con más detalles. Por ejemplo, necesita un ListView (personalizado). Que creó el diseño como esto:

<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> 

Ahora necesita un ArrayAdapter demasiado para adaptar esta costumbre ListView, no estoy incluyendo ArrayAdapter.

Por lo tanto, en su clase PagerAdapter, defina ListView y utilice este diseño. En el ejemplo:

@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; 
} 

Ahora funciona bien. Si necesita más pestañas, use el parámetro position como un separador como if(position == 0). En esto vas a necesitar esta línea:

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

Eso es todo. Espero, está claro.

+0

Gracias, funcionó y ahora agarré lo que has querido decir. – Martin

Cuestiones relacionadas