1

ビューページャーを適切に実装するために必要な概念に苦労しています。いくつかのチュートリアルに従い、developer.android.comを参照することで、ビューページャーをほぼ完全に機能させることができます。ポケットベルは、「マイメッセージ0」から「マイメッセージ9」までを表示するように設定されているいくつかのテキストビューをめくります。問題は、ビューページャーがアクティビティの下部にあるボタンとボタンのすぐ上にある赤いブロックも反転させることです。

ビューページャーのミッドフリップに関する問題

ビューページャーにテキストのみを循環させたいのですが。私が間違っていることを理解するのを手伝ってくれませんか。

ダッシュボードを表すアクティビティがあります。

public class DashBoard extends FragmentActivity
{
  private static final int NUMBER_OF_PAGES = 10;

  private ViewPager mViewPager;
  private MyFragmentPagerAdapter mMyFragmentPagerAdapter;

  public void onCreate(Bundle icicle){
  super.onCreate(icicle);
  setContentView(R.layout.dashboard);

  mViewPager = (ViewPager) findViewById(R.id.viewpager);
  mMyFragmentPagerAdapter = new    MyFragmentPagerAdapter(getSupportFragmentManager());
  mViewPager.setAdapter(mMyFragmentPagerAdapter);

  }

     private static class MyFragmentPagerAdapter extends FragmentPagerAdapter{
 public MyFragmentPagerAdapter(FragmentManager fm)
 {
     super(fm);
 }

 @Override
 public Fragment getItem(int index)
 {
     return PageFragment.newInstance("My Message " + index);
 }

 @Override
 public int getCount(){
     return NUMBER_OF_PAGES;
  }
  }

およびページフラグメントのクラス:

public class PageFragment extends Fragment {

public static PageFragment newInstance(String title){

  PageFragment pageFragment = new PageFragment();
  Bundle bundle = new Bundle();
  bundle.putString("title", title);
  pageFragment.setArguments(bundle);
  return pageFragment;
    }

    @Override
    public void onCreate(Bundle icicle){
  super.onCreate(icicle);

    }

    @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle icicle){
  View view = inflater.inflate(R.layout.dashboard, container, false);
  TextView textView = (TextView) view.findViewById(R.id.textViewPage);
  textView.setText(getArguments().getString("title"));
  return view;

     }

    }

そして最後に、ダッシュボードの私のxml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/dashbaordLabel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    />
<TextView
    android:id="@+id/textViewPage"
    android:layout_width = "match_parent"
    android:layout_height= "wrap_content"
    />  

<Button
    android:id="@+id/newGoalButton"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/stringNewGoal"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:onClick="createNewGoal"
    />

<RelativeLayout
    android:id="@+id/SpaceBottom"
    android:layout_width="match_parent"
    android:layout_height="75dp"
    android:layout_above="@id/newGoalButton"
    android:background="@color/red"
>

   </RelativeLayout>
     </RelativeLayout>

私のxmlについてのメモ、私はいくつかのビューページャータグでテキストビューをラップしようとしました。

<android.support.v4.view.ViewPager
    android:id="@+id/viewpager"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    >
<TextView
    android:id="@+id/textViewPage"
    android:layout_width = "match_parent"
    android:layout_height= "wrap_content"
    />  
</android.support.v4.view.ViewPager>

しかし、それは、元の問題と同じようにボタンと赤いブロックが循環している間に、テキストビューを画面から非表示にすることだけでした。

4

1 に答える 1

2

とによって作成されActivityたの両方に同じXMLレイアウトを使用しているようです。ViewPageFragment

少なくとも2つのレイアウトが必要です。必要な最初のレイアウトは、ホスティングで使用されるものですFragmentActivity。このレイアウトには、に加えて、ボタンなどのViewPager横に画面上で静的なままである他のものが含まれます。このレイアウトは、ほとんどあなたが示したものです(最初のXMLリスト)。ViewPager

onCreateView()2番目のレイアウトは、の内部で膨らませるレイアウトですPageFragment。初心者の場合、単純なTextViewsを切り替えたいだけだとするonCreateView()と、膨らんで戻るレイアウトは、。だけを含む専用のXMLレイアウトになりますTextView

つまり、XMLレイアウトの次の部分です。

<TextView
android:id="@+id/textViewPage"
android:layout_width = "match_parent"
android:layout_height= "wrap_content"
/>  

...そこから取り出して、などの別のレイアウトに配置する必要があります。fragment_layout.xmlこのレイアウトで膨らませますonCreateView()

于 2012-12-01T16:56:20.473 に答える