【发布时间】:2014-05-23 05:15:52
【问题描述】:
在这些程序的帮助下,我创建了选项卡。你可以看看下面的代码。
HomeActivity.java:
package com.sit.fth.activity;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.util.Log;
import android.view.WindowManager;
public class HomeActivity extends BaseActivity implements
VideoFragment.OnVideoSelectedListener,
AboutFragment.OnAboutFragmentSelectedListener,
AnnouncenentFragment.OnAnnouncementSelectedListener,
GalleryFragment.OnGalItemSelectedListener,
MagzineFragment.OnMagzineSelectedListener {
private ActionBar actionabar;
private ViewPager viewpager;
private LiveStreamFragment liveStreamFragment;
private AppData appData;
private FragmentManager fm;
private MyFragmentPagerAdapter fragmentPagerAdapter;
// private HomeBaseFragment fragment;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_main);
appData = ((GemsApplication) this.getApplication()).getAppData();
actionabar = getActionBar();
actionabar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
liveStreamFragment = new LiveStreamFragment();
viewpager = (ViewPager) findViewById(R.id.pager);
fm = getSupportFragmentManager();
/** Defining a listener for pageChange */
ViewPager.SimpleOnPageChangeListener pageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
actionabar.setSelectedNavigationItem(position);
}
};
/** Setting the pageChange listner to the viewPager */
viewpager.setOnPageChangeListener(pageChangeListener);
/** Creating an instance of FragmentPagerAdapter */
fragmentPagerAdapter = new MyFragmentPagerAdapter(fm);
viewpager.setAdapter(fragmentPagerAdapter);
actionabar.setDisplayShowTitleEnabled(true);
/** Defining tab listener */
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabReselected(Tab arg0,
android.app.FragmentTransaction arg1) {
}
@Override
public void onTabSelected(Tab tab,
android.app.FragmentTransaction ft) {
viewpager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(Tab tab,
android.app.FragmentTransaction ft) {
}
};
Tab tab = actionabar.newTab().setText(getString(R.string.str_home))
.setTabListener(tabListener);
actionabar.addTab(tab);
tab = actionabar.newTab().setText(getString(R.string.str_video))
.setTabListener(tabListener);
actionabar.addTab(tab);
tab = actionabar.newTab().setText(getString(R.string.str_gal))
.setTabListener(tabListener);
actionabar.addTab(tab);
tab = actionabar.newTab().setText(getString(R.string.str_announcements))
.setTabListener(tabListener);
actionabar.addTab(tab);
tab = actionabar.newTab()
.setText(getString(R.string.str_magazines))
.setTabListener(tabListener);
actionabar.addTab(tab);
tab = actionabar.newTab().setText(getString(R.string.str_conduct))
.setTabListener(tabListener);
actionabar.addTab(tab);
}
}
我需要将一个标签移动到屏幕底部。我很困惑,因为我在HomeActivity.java coding not from xml layout 的帮助下添加了一个tabs。
我不知道如何将标签移动到屏幕底部。任何人都可以帮助我解决这些问题。谢谢。
【问题讨论】:
-
底部的ActionBar标签不能移动(这也违背了android的设计原则)。但是,您可以使用普通标签并自己将它们放在底部。
-
@Luksprog 谢谢你的回答。我已经使用了普通的标签。但是,我没有得到滑动视图。有没有可能在底部获得滑动标签屏幕?
-
在您发布的代码中,您似乎在 ActionBar 上设置了选项卡,我也看不到任何 TabHost 小部件会以其他方式指示。正如我所说,使用普通的 TabHost,您可以很容易地将选项卡放在底部,我制作了一个小样本作为示例,说明如何处理此问题。你可以在这里找到示例gist.github.com/luksprog/066f81f5e20c2ca41b7d
标签: android tabs android-actionbar