我正在实现一个在垂直方向上按预期工作的 ViewPagerIndicator。当我在水平方向进行测试时,通过在运行时切换(物理转动手机)或当应用程序以水平模式启动时(在应用程序启动之前手机是水平的),我会在 ViewPagerIndicator 应该是的空白处得到一个空白区域。我有一个 layout/main.xml 和 layout-land/main.xml ,其中有几个按预期显示的按钮(在垂直模式下垂直堆叠,在水平模式下作为网格)。当我按下“编辑”按钮时,我启动了编辑活动:
public class ATEditActivity extends Activity {
static final int OFFSCREEN_PAGE_LIMIT = 5;
ViewPager pager = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.edit);
int iPage = 2; // set the page based on caller's intentions
Bundle bndlExtras = getIntent().getExtras();
if (bndlExtras != null) {
iPage = bndlExtras.getInt("PAGE");
}
ATViewPagerAdapter adapter = new ATViewPagerAdapter(this);
pager = (ViewPager) findViewById(R.id.awesomepager);
pager.setOffscreenPageLimit(OFFSCREEN_PAGE_LIMIT);
pager.setAdapter(adapter);
TitlePageIndicator indicator = (TitlePageIndicator) findViewById(R.id.TitlePageIndicator);
indicator.setViewPager(pager);
indicator.setCurrentItem(iPage);
}
}
编辑.xml:
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#FFFFFF"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp">
<EditText
android:id="@+id/etName"
android:inputType="textAutoComplete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edit_text"
android:layout_margin="4dp"
android:hint="@string/name" />
<com.viewpagerindicator.TitlePageIndicator
android:id="@+id/TitlePageIndicator"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
style="@style/Widget.MyTitlepageIndicator" />
<android.support.v4.view.ViewPager
android:id="@+id/awesomepager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
关于为什么 ViewPagerIndicator 不会以水平模式显示的任何想法?是否需要更多信息?