Android操作栏选项卡-滑动
如果我能在actionbar中的标签之间滑动,那就太好了 我遵循了这些教程:但它不起作用(我不能用手势在标签之间滑动 以下是我的主要活动:Android操作栏选项卡-滑动,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,如果我能在actionbar中的标签之间滑动,那就太好了 我遵循了这些教程:但它不起作用(我不能用手势在标签之间滑动 以下是我的主要活动: public class Hauptmenue_extended extends ActionBarActivity implements android.content.DialogInterface.OnClickListener { @Override protected void onCreate(Bundle savedIn
public class Hauptmenue_extended extends ActionBarActivity implements
android.content.DialogInterface.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hauptmenue_extended);
try {
mPullToRefreshAttacher = PullToRefreshAttacher.get(this);
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);
mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mAdapter);
Tab tabB = actionBar.newTab();
tabB.setText("Home");
tabB.setIcon(R.drawable.icon_home);
tabB.setTabListener(new TabListener<Startmenue_activity>(this,
"Start", Startmenue_activity.class, this.mViewPager));
actionBar.addTab(tabB);
Tab tabA = actionBar.newTab();
tabA.setText("");
tabA.setIcon(R.drawable.icon_nachrichten_sel);
tabA.setTabListener(new TabListener<Nachrichten_activity>(this,
"Nachrichten", Nachrichten_activity.class, this.mViewPager));
actionBar.addTab(tabA);
Tab tabC = actionBar.newTab();
tabC.setText("");
tabC.setIcon(R.drawable.icon_favoriten);
tabC.setTabListener(new TabListener<Favoriten_activity>(this,
"Favoriten", Favoriten_activity.class, this.mViewPager));
actionBar.addTab(tabC);
this.conEinst = new conEinstellungen(getBaseContext());
} catch (Exception ex) {
ex.printStackTrace();
// HelperClassAlertDialog.zeigeInfoDialog(this, "Error...",
}
}
public class TabsPagerAdapter extends FragmentPagerAdapter {
public TabsPagerAdapter(FragmentManager fm) {
super(fm);
}
public Fragment getItem(int index) {
switch (index) {
case 0:
// Top Rated fragment activity
return new Startmenue_activity();
case 1:
// Games fragment activity
return new Nachrichten_activity();
case 2:
// Movies fragment activity
return new Favoriten_activity();
}
return null;
}
public int getCount() {
// get item count - equal to number of tabs
return 3;
}
}
public类Hauptmenue\u扩展扩展了ActionBarActivity实现
android.content.DialogInterface.OnClickListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u hauptmenue\u扩展);
试试{
mPullToRefreshAttacher=PullToRefreshAttacher.get(这个);
actionBar=getSupportActionBar();
actionBar.setNavigationMode(actionBar.NAVIGATION\u MODE\u选项卡);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(真);
mAdapter=new TabsPagerAdapter(getSupportFragmentManager());
mViewPager=(ViewPager)findViewById(R.id.pager);
mViewPager.setAdapter(mAdapter);
Tab tabB=actionBar.newTab();
表B.setText(“主页”);
选项卡setIcon(R.drawable.icon_home);
表B.SetTableSistener(新的TableSistener)(此,
“开始”,Startmenue_activity.class,this.mviewPage);
actionBar.addTab(tabB);
Tab tabA=actionBar.newTab();
tabA.setText(“”);
tabA.setIcon(R.drawable.icon_nachrichten_sel);
tabA.setTabListener(新的TabListener)(此,
“Nachrichten”,Nachrichten_activity.class,this.mviewpage);
actionBar.addTab(tabA);
Tab tabC=actionBar.newTab();
表C.setText(“”);
选项卡设置图标(R.drawable.icon_favoriten);
tabC.setTabListener(新的TabListener)(此,
“Favoriten”,Favoriten_activity.class,this.mviewpage);
actionBar.addTab(tabC);
this.conEinst=new-conEinstellungen(getBaseContext());
}捕获(例外情况除外){
例如printStackTrace();
//HelperClassAlertDialog.zeigeInfoDialog(此“错误…”,
}
}
公共类选项卡SpagerAdapter扩展了FragmentPagerAdapter{
公共选项卡SpagerAdapter(FragmentManager fm){
超级(fm);
}
公共片段getItem(int索引){
开关(索引){
案例0:
//顶级碎片活性
返回新的Startmenue_活动();
案例1:
//游戏片段活动
返回新的Nachrichten_活动();
案例2:
//电影片段活动
返回新的Favoriten_活动();
}
返回null;
}
public int getCount(){
//获取项目计数-等于选项卡数
返回3;
}
}
这是XML:
这非常有效,您可以在选项卡之间滑动:
main活动
:
public class MainActivity extends FragmentActivity implements
ActionBar.TabListener {
CollectionPagerAdapter mCollectionPagerAdapter;
ViewPager mViewPager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCollectionPagerAdapter = new CollectionPagerAdapter(
getSupportFragmentManager());
final ActionBar actionBar = getActionBar();
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mCollectionPagerAdapter);
mViewPager
.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
for (int i = 0; i < mCollectionPagerAdapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab()
.setText(mCollectionPagerAdapter.getPageTitle(i))
.setTabListener(this));
}
}
public void onTabUnselected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
}
public void onTabSelected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
mViewPager.setCurrentItem(tab.getPosition());
}
public void onTabReselected(ActionBar.Tab tab,
FragmentTransaction fragmentTransaction) {
}
public class CollectionPagerAdapter extends FragmentPagerAdapter {
final int NUM_ITEMS = 3; // number of tabs
public CollectionPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment = new TabFragment();
Bundle args = new Bundle();
args.putInt(TabFragment.ARG_OBJECT, i);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public CharSequence getPageTitle(int position) {
String tabLabel = null;
switch (position) {
case 0:
tabLabel = getString(R.string.label1);
break;
case 1:
tabLabel = getString(R.string.label2);
break;
case 2:
tabLabel = getString(R.string.label3);
break;
}
return tabLabel;
}
}
public static class TabFragment extends Fragment {
public static final String ARG_OBJECT = "object";
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle args = getArguments();
int position = args.getInt(ARG_OBJECT);
int tabLayout = 0;
switch (position) {
case 0:
tabLayout = R.layout.tab1;
break;
case 1:
tabLayout = R.layout.tab2;
break;
case 2:
tabLayout = R.layout.tab3;
break;
}
View rootView = inflater.inflate(tabLayout, container, false);
return rootView;
}
}
}
tab1.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/body1" />
</LinearLayout>
tab3.xml
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/body2" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/body3" />
</LinearLayout>
您是否见过这一点。它将帮助您使用ActionBar创建选项卡请编辑您的问题,解释“它不起作用”的含义。您可以使用“选项卡+滑动”创建新项目模板并查看该代码以供参考。对不起,我做到了。我不能用手势在选项卡之间滑动。非常感谢。不,它有效。我不知道我做了什么,但它有效。;)很高兴帮助你:)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/body2" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/body3" />
</LinearLayout>