我正在实现一个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);
}
}
edit.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不会以水平模式显示的任何想法?需要更多信息吗?
答案 0 :(得分:0)
您可能需要覆盖onConfigurationChanged()
,请参阅reference,因为您的应用需要再次检索资源并绘制所有内容。
答案 1 :(得分:0)
经过三四天尝试我能想象到的一切之后,我终于决定在我的项目中确实存在一些问题,所以我创建了一个新项目,只需要少量的代码来使ViewPagerIndicator正常工作。新项目现在正在开发“开箱即用”的两个方向。我不知道是什么原因导致我的旧项目只在水平方向上变得混乱,但是我会让新项目按计划进行,并且按照预期正常运行的方式加快速度。