[英]SwipeyTabs - how to create Swipey Tabs using ActionBarSherlock Library?
[英]Android: How to Fill SwipeyTabs?
我在應用程序中使用SwipeyTabs
。 我不確定如何填寫標簽內容。 它甚至沒有任何自己的xml。
我正在使用這樣的標簽:
@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" />
是否有任何示例或教程?
任何支持都會很棒。
SwipeyTabs
選項卡就像虛擬布局,我的意思是它們沒有自己定義的布局。 您應該動態定義每個組件。
讓我詳細解釋。 例如,您需要一個ListView(自定義)。 您創建的布局是這樣的:
<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
參數作為分隔符,如if(position == 0)
。 在這里,您將需要以下行:
((ViewPager) container).removeView((View) container);
就這樣。 我希望這很清楚。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.