我在我的应用程序中使用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);
就这样。我希望这很清楚。