5

申し訳ありませんが、タイトルが十分に明確ではありません。どう表現すればいいのかわかりませんが、こちらの画像がすべてを物語っています。

Googleリーダーアプリでは、現在の投稿を左または右にスワイプすると、最初の投稿が2番目の投稿が入ってくると、最初の投稿が出ていくのがわかります。これは素晴らしい効果ですが、実装方法がわかりません。

何か案は?

ここに画像の説明を入力してください

4

2 に答える 2

1

フラグメントで ViewPager を使用する必要があります。

http://android-developers.blogspot.co.uk/2011/08/horizo​​ntal-view-swiping-with-viewpager.html

于 2012-05-01T16:19:55.450 に答える
1
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#a4c639"
android:orientation="vertical" >

<android.support.v4.view.ViewPager
    android:id="@+id/awesomepager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>





 public class ReadRawActivity extends Activity {

    private ViewPager awesomePager;
    private static int NUM_AWESOME_VIEWS = 3;
    private static Context cxt;
    private AwesomePagerAdapter awesomeAdapter;

    /** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    cxt = ReadRawActivity.this;

    awesomeAdapter = new AwesomePagerAdapter();
    awesomePager = (ViewPager) findViewById(R.id.awesomepager);
    awesomePager.setAdapter(awesomeAdapter);
}

private class AwesomePagerAdapter extends PagerAdapter{




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

        /**
         * Create the page for the given position.  The adapter is responsible
         * for adding the view to the container given here, although it only
         * must ensure this is done by the time it returns from
         * {@link #finishUpdate()}.
         *
         * @param container The containing View in which the page will be shown.
         * @param position The page position to be instantiated.
         * @return Returns an Object representing the new page.  This does not
         * need to be a View, but can be some other container of the page.
         */
            @Override
            public Object instantiateItem(View collection, int position) {
                    TextView tv = new TextView(cxt);
                    tv.setText("View Pager" + position);
                    tv.setTextColor(Color.WHITE);
                    tv.setTextSize(30);

                    ((ViewPager) collection).addView(tv,0);

                    return tv;
            }

        /**
         * Remove a page for the given position.  The adapter is responsible
         * for removing the view from its container, although it only must ensure
         * this is done by the time it returns from {@link #finishUpdate()}.
         *
         * @param container The containing View from which the page will be removed.
         * @param position The page position to be removed.
         * @param object The same object that was returned by
         * {@link #instantiateItem(View, int)}.
         */
            @Override
            public void destroyItem(View collection, int position, Object view) {
                    ((ViewPager) collection).removeView((TextView) view);
            }



            @Override
            public boolean isViewFromObject(View view, Object object) {
                    return view==((TextView)object);
            }


        /**
         * Called when the a change in the shown pages has been completed.  At this
         * point you must ensure that all of the pages have actually been added or
         * removed from the container as appropriate.
         * @param container The containing View which is displaying this adapter's
         * page views.
         */
            @Override
            public void finishUpdate(View arg0) {}


            @Override
            public void restoreState(Parcelable arg0, ClassLoader arg1) {}

            @Override
            public Parcelable saveState() {
                    return null;
            }

            @Override
            public void startUpdate(View arg0) {}

}


}
于 2012-05-02T11:06:03.960 に答える