1

垂直方向で期待どおりに機能する 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 が水平モードで表示されない理由について何か考えはありますか? さらに情報が必要ですか?

4

2 に答える 2

0

アプリはリソースを再度取得してすべてを描画する必要があるため、おそらくonConfigurationChanged()参照をオーバーライドする必要があります

于 2012-04-07T18:12:58.567 に答える
0

想像できる限りのことを 3 ~ 4 日間試した後、最終的に、自分のプロジェクトに何か問題があるに違いないと判断したので、ViewPagerIndicator を機能させるために必要な最小限のコードのみを含む新しいプロジェクトを作成しました。新しいプロジェクトは現在、「すぐに使える」両方の方向で機能しています。古いプロジェクトが水平方向だけでうまくいかなかった原因はわかりませんが、期待どおりに機能しているので、新しいプロジェクトをすぐに軌道に乗せてスピードアップします.

于 2012-04-10T23:13:35.283 に答える