ViewPagerFragment.java
package nsixty.crew.app;
import java.util.List;
import java.util.Vector;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import com.viewpagerindicator.TitlePageIndicator;
import com.viewpagerindicator.TitleProvider;
public class ViewPagerFragment extends FragmentActivity {
private CustomFragmentAdapter mPagerAdapter;
ViewPager pager;
TitlePageIndicator titleIndicator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.lcmeter);
this.initialisePaging();
}
private void initialisePaging() {
List<Fragment> fragments = new Vector<Fragment>();
fragments
.add(Fragment.instantiate(this, LoginActivity.class.getName()));
fragments.add(Fragment.instantiate(this, main.class.getName()));
this.mPagerAdapter = new CustomFragmentAdapter(
super.getSupportFragmentManager(), fragments);
pager = (ViewPager) findViewById(R.id.viewpager);
pager.setAdapter(this.mPagerAdapter);
titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
titleIndicator.setViewPager(pager);
}
public static class CustomFragmentAdapter extends FragmentPagerAdapter
implements TitleProvider {
public static final int POSITION_PAGE_1 = 0;
public static final int POSITION_PAGE_2 = 1;
public static final int POSITION_PAGE_3 = 2;
private List<Fragment> fragments;
private static final String[] TITLES = new String[] { "LOGIN", "HOME" };
public static final int NUM_TITLES = TITLES.length;
@Override
public String getTitle(int position) {
return TITLES[position];
}
public CustomFragmentAdapter(FragmentManager fm,
List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public int getCount() {
// return this.fragments.size();
return NUM_TITLES;
}
@Override
public Fragment getItem(int position) {
try {
LoginActivity.class.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return this.fragments.get(position);
}
}
}
lcmeter.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.viewpagerindicator.TitlePageIndicator
android:id="@+android:id/titles"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<android.support.v4.view.ViewPager
android:id="@+android:id/viewpager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="nsixty.crew.app"
android:versionCode="1"
android:versionName="1.0" >
<support-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="false" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:icon="@drawable/icon87"
android:label="@string/app_name" >
<activity
android:name="ViewPagerFragment"
android:theme="@android:style/Theme.Black.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".main" >
<intent-filter>
<action android:name="nsixty.crew.app.main" />
<category
android:name="android.intent.category.DEFAULT"
android:screenOrientation="portrait" />
</intent-filter>
</activity>
<activity
android:name=".play"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="nsixty.crew.app.play" />
<category
android:name="android.intent.category.DEFAULT"
android:screenOrientation="landscape" />
</intent-filter>
</activity>
<activity
android:name=".secondView"
android:label="@string/app_name"
android:screenOrientation="landscape" >
<intent-filter>
<action android:name="nsixty.crew.app.SECONDVIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".recorder"
android:configChanges="orientation"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<intent-filter>
<action android:name="nsixty.crew.app.RECORD" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".send"
android:label="@string/app_name" >
<!-- android:theme="@android:style/Theme.Dialog" -->
<intent-filter>
<action android:name="nsixty.crew.app.SHARE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".gallery"
android:theme="@android:style/Theme.Dialog" >
<intent-filter>
<action android:name="nsixty.crew.app.gallery" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".RegisterActivity"
android:theme="@android:style/Theme.Dialog" >
</activity>
<activity
android:name=".media"
android:theme="@android:style/Theme.Dialog" >
<intent-filter>
<action android:name="nsixty.crew.app.media" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".LoginActivity" >
</activity>
<activity android:name="CustomTitleBar" >
</activity>
</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" >
</uses-permission>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-feature android:name="android.hardware.camera" />
</manifest>
ScreenShot1
ScreenShot2
请帮助我解决这些小问题,我无法弄清楚问题的来源,我已经为这些工作了好几个小时。我认为问题将来自Xml布局谢谢。
答案 0 :(得分:0)
尝试这样:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewpager);
// Create our custom adapter to supply pages to the viewpager.
mPagerAdapter = new Pager_Adapter(this,getSupportFragmentManager());
mViewPager = (ViewPager)findViewById(R.id.pager);
mViewPager.setAdapter(mPagerAdapter);
// Start at a custom position
mViewPager.setCurrentItem(0);
// Find the indicator from the layout
mTabs = (TitleIndicator) findViewById(R.id.swipeytabs);
mTabs.setAdapter(mPagerAdapter);
// Set the indicator as the pageChangeListener
mViewPager.setOnPageChangeListener(mTabs);
}
class Pager_Adapter extends FragmentPagerAdapter implements ViewpagerAdapter{
private final Context mContext;
public Pager_Adapter(Context context, FragmentManager fm) {
super(fm);
this.mContext = context;
}
@Override
public Fragment getItem(int pos) {
return ItemFragment.newInstance(QUES[pos],listArray[pos]);
//return ItemFragment.newInstance(QUES[pos % TITLES.length]);
}
@Override
public int getCount() {
return TITLES.length;
}
public TextView getTab(final int position, TitleIndicator root) {
TextView view = (TextView) LayoutInflater.from(mContext).inflate(
R.layout.swipey_tab_indicator, root, false);
// swipey_tab_indicator is the your titleBar Layout ,
// You can use only textview on that layout for the titlebar
view.setText(TITLES[position]);
view.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
mViewPager.setCurrentItem(position);
}
});
return view;
}
}
有关详细信息,请查看此信息 link
答案 1 :(得分:0)
我使用了这个库View pager extensions,我使用了swipey标签视图指示器而不是标题页指示器,它运行得很好。
答案 2 :(得分:0)
嗯,看起来这个文本的默认选择颜色是黑色,你的背景是这样你应该把它改成android XML文件中的另一种颜色。