gpt4 book ai didi

android - PagerSlidingTabStrip 不工作,但我的代码对我来说似乎没问题

转载 作者:行者123 更新时间:2023-11-29 21:08:45 28 4
gpt4 key购买 nike

我已尝试在我的应用程序中实现 PagerSlidingTabStrip,但它无法正常工作。我做了所有在 sample 中完成的事情但它不起作用。选项卡指示器没有像预期的那样移动,应用程序也没有崩溃。基本上什么都没有发生。我不知道出了什么问题。

MainActivity代码

public class MainActivity extends FragmentActivity implements TabListener {

ActionBar aBar;
ViewPager vPager;
PagerAdapter pAdapter;
PagerSlidingTabStrip slidingTabStrip;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Action Bar
aBar = getActionBar();
aBar.setTitle("Beautiful Voice Recorder");
aBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// Variables
slidingTabStrip = (PagerSlidingTabStrip) findViewById(R.id.slidingTabs);
vPager = (ViewPager) findViewById(R.id.pager);
pAdapter = new PagerAdapter(getSupportFragmentManager());

// Tabs
vPager.setAdapter(pAdapter);
slidingTabStrip.setViewPager(vPager);

aBar.addTab(aBar.newTab().setText("Record").setTabListener(this));
aBar.addTab(aBar.newTab().setText("Library").setTabListener(this));

vPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

@Override
public void onPageSelected(int position) {
LibraryFragment listViewFragment = (LibraryFragment)pAdapter.instantiateItem(vPager, 1);
RecordFragment recordFragment = (RecordFragment)pAdapter.instantiateItem(vPager, 0);
listViewFragment.updateComponents();
// Pause mp if it's playing and tabs are switched just in case
if (listViewFragment.mp.isPlaying())
{
listViewFragment.mp.pause();
listViewFragment.playPause.setBackgroundResource(R.drawable.play_button_selector);
}
if (recordFragment.isRecording)
{
recordFragment.stopRecording();
}
aBar.setSelectedNavigationItem(position);
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {

}

@Override
public void onPageScrollStateChanged(int arg0) {

}
});
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
vPager.setCurrentItem(tab.getPosition());
}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {

}

}

class PagerAdapter extends FragmentPagerAdapter{

String[] pageTitles = { "Record", "Library" };

public PagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int arg0) {
Fragment fragment = new Fragment();
if (arg0 == 0)
{
fragment = new RecordFragment();
}
if (arg0 == 1)
{
fragment = new LibraryFragment();
}
return fragment;
}

@Override
public int getCount() {
return pageTitles.length;
}

@Override
public CharSequence getPageTitle(int position) {

return pageTitles[position];
}

}

XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<com.astuetz.PagerSlidingTabStrip
android:id="@+id/slidingTabs"
android:layout_width="match_parent"
android:layout_height="48dip" />

<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</RelativeLayout>

有谁知道为什么我的代码不起作用?

最佳答案

我认为你没有找到 ViewPager,即使它是 RelativeLayout。

所以试试我正在使用的这段代码。希望对您有所帮助。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
/>
<com.flitto.app.widgets.MainViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tabs"
tools:context=".MainTabActivity"/>
</RelativeLayout>

关于android - PagerSlidingTabStrip 不工作,但我的代码对我来说似乎没问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23627141/

28 4 0
文章推荐: android - SpeechRecognizer 未启动
文章推荐: javascript - 使用键划分数组数组中的对象
文章推荐: javascript - 从 <iframe> 或 中获取变量的值