ViewPager
を使用すると同時に2ページを表示する可能性はありますか?私はエッジ効果を探しているのではなく、むしろ二つのために同時にフルページを探しています。同時に複数のページをViewPagerで表示
ありがとうございます。
ViewPager
を使用すると同時に2ページを表示する可能性はありますか?私はエッジ効果を探しているのではなく、むしろ二つのために同時にフルページを探しています。同時に複数のページをViewPagerで表示
ありがとうございます。
ビューポケットベルの制限では可能ではないと思います。ユーザーは、一度に1ページだけを見ることができます。フラグメントを使用して何かを動作させることができ、2つのViewPagerフラグメントを並べて使用して、ボタンを使用して実装したいページを外に出すことができますが、コードは非常に複雑になることがあります。
ViewFlipperのようなものを試すことができます。ここでは、さらに多くのカスタマイズ(アニメーションを含む)ができます。
これが役に立ちます。
対応するPagerAdapter
のgetPageWidth
メソッドをご覧ください。上書きして戻る0.8f
は、すべての子ページがViewPagerの幅の80%にしかならないようにします。
さらに詳しい情報: http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html#getPageWidth(int)
that blog entryを参照してください。
PagerContainerテクニックが私の問題を解決しました。
EDIT:
私は同じ答えを見つけました。
How to migrate from Gallery to HorizontalScrollView & ViewPager?
ようこそStackOverflowへ!そのブログ記事の抜粋をあなたの答えに追加したいのですか?そうすれば、リンクが消えてもまだ役立つでしょうか? –
@ S.L.Barthあなたの助けに感謝します。私は自分の答えを変更しました。 – kaw
この問題を解決するには、PagerAdapterクラスのgetPageWidthを使用します。
あなたのJARが最新 .Since以前ViewPagerが同時に複数のページをサポートしていませんでしたされているかどうかについて確認してください。
公共フロートgetPageWidth(){
リターン0.4F;(あなたがページごとにフルスクリーン.FOR、それを選択することができますが、1Fを与える必要があります) }
私より最新の回答を参照してください。ここでは:Can ViewPager have multiple views in per page?
私は、おそらくViewPagerのマイナスマージンを指定することによってさらに簡単な解決策を発見しました。この質問は、特にここではいくつかの答えが提案する、エッジ効果なしソリューションが求められますが
:私はあなたを見てみたいことがありGitHubの上MultiViewPagerプロジェクトを、作成しましたkawの提案などCommonsWareによる回避策。
タッチ処理とハードウェアアクセラレーションには、さまざまな問題があります。よりシンプルかつエレガントなソリューション、私の意見では、ViewPager用負のマージンを指定することです:私はその後、私のdimens.xml
でこのディメンションを指定
ViewPager.setPageMargin(
getResources().getDimensionPixelOffset(R.dimen.viewpager_margin));
:
<dimen name="viewpager_margin">-64dp</dimen>
ページの重複を補償するために、 dimens.xml
で再び
android:layout_marginLeft="@dimen/viewpager_margin_fix"
android:layout_marginRight="@dimen/viewpager_margin_fix"
:各ページのコンテンツビューには、反対の余裕を持って
<dimen name="viewpager_margin_fix">32dp</dimen>
(。viewpager_margin_fix
寸法は絶対viewpager_margin
次元の半分であることに注意してください)
私たちは、このin the Dutch newspaper app De Telegraaf Krant実装:あなたは上getPageWidth()
メソッドをオーバーライドする必要が
をビューページのアダプタ。例:
@Override
public float getPageWidth(int position) {
return 0.9f;
}
アダプタでコードを試してみてください。
これは@ Markus-Wörzの答えとよく似ていますか? – bummi
あなたのレイアウトファイルを作成します。my_layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<FrameLayout
android:id="@+id/pager_container"
android:layout_width="match_parent"
android:layout_height="240dp"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="200dp"
android:clipToPadding="false"
android:layout_height="200dp"
android:layout_marginLeft="70dp"
android:layout_marginRight="70dp"
android:layout_gravity="center" />
</FrameLayout>
</layout>
viewpagerは、あなたがあなたのページになりたいと同じくらい小さいです。 android:clipToPadding = "false"を指定すると、ページャーの外側のページも表示されます。しかし、今viewpager外にドラッグすると、これは、ページャ・コンテナからのタッチを選ぶとページャへのそれらを渡すことによって改善することができる効果がありません:
MyLayoutBinding binding = DataBindingUtil.<MyLayoutBinding>inflate(layoutInflater, R.layout.my_layout, parent, false)
binding.pager.setOffscreenPageLimit(3);
binding.pager.setPageMargin(15);
binding.pagerContainer.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return chatCollectionLayoutBinding.pager.onTouchEvent(event);
}
});
それはViewpagerの項目のレイアウトに着ることができます。一度に2ページを必要とすると仮定します。
これはアイテムのレイアウト(photo_slider_item.xml)です:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" style="@style/photosSliderItem">
<ImageView android:id="@id/photoBox1" style="@style/photoBox"/>
<ImageView android:id="@id/photoBox2" style="@style/photoBox"/>
</LinearLayout>
そして、あなたのPagerAdapter中:
@Override
public View instantiateItem(ViewGroup container, int position){
View sliderItem = LayoutInflater.from(container.getContext()).inflate(photo_slider_item, container, false);
ImageView photoBox1 = (ImageView) sliderItem.findViewById(R.id.photoBox1);
ImageView photoBox2 = (ImageView) sliderItem.findViewById(R.id.photoBox2);
photoBox1.setImageResource(photosIds[position]);
if(position < photosIds.length-1){
photoBox2.setImageResource(photosIds[position+1]);
} else {photoBox2.setImageResource(photosIds[0]);}
container.addView(sliderItem);
return sliderItem;
}
私はあなたasking..canているものはかなりわからないんだけどもう少し説明してください。 – Cody
私は、ViewPagerに、ブックのように2つの利用可能なページを並べて表示させたいと考えています。 –
2つのフラグメントを使用してページを左右に並べることはできますか?そのただのアイデア...私を責めないでください..... – NIPHIN