6

画像に示すように施設​​を提供する必要があります。

ここに画像の説明を入力

セカンド ビュー

下部にビューページャーがある場合の最初のビュー。ユーザーが右から左にスワップすると、最初のものが 2 番目に置き換えられます。私ができること。しかし、
私の質問は、右側と左側の端にある次のビューの半分をどのようにするかです。

つまり、最初のビューの 'irst' と 2 番目のビューの 'Thir' です。

4

4 に答える 4

6

ここでギャラリーを使用できます。各アイテムのギャラリー内で、要件に合うようにレイアウトパラメータ(幅)を設定します。

ギャラリーの問題は、アイテムが回転しないことです。つまり、リストの最後に到達すると、最初のアイテムは取得されません。

しかし、それを克服するための秘訣もあります。リストカウントを非常に大きな数(INT_MAX)に設定し、アダプタで%計算によって適切なビューを慎重に返すだけです。

これにより、リストの最後にすぐに到達しないようになります。

于 2012-08-14T10:09:48.557 に答える
5

前のページと次のページが表示されている Android ViewPagerという質問の解決策を確認することをお勧めします。) - ( 経由で) 負のページ マージンを使用するViewPager.setPageMarginと、一度に複数のページを表示できます (つまり、現在のページの左右に)。

于 2012-09-17T00:16:31.867 に答える
4

ギャラリーの代わりに Horizo​​ntalScrollView を使用する必要があります。これは、ジェリービーンズ バージョンから非推奨になっているためです。

http://developer.android.com/reference/android/widget/Gallery.html

于 2012-08-14T10:15:44.287 に答える
2

最後に、これに対する解決策を見つけました。プロジェクトでビュー ページャー インジケーターの TitlePageIndicator を使用しています。この効果を実現するには、TitlePageIndicator クラスを少し変更する必要があります。
アイデアは、左側のテキストをサイズの半分に等しい量だけ左にシフトし(何でもかまいません)、右側のテキストをサイズの半分に等しい量だけ右にシフトすることです(何でもかまいません)。 .

左側のテキストに境界を設定するにはclipViewOnTheLeft(...)メソッドが使用され、右側のテキストに境界を設定するにはclipViewOnTheRight(...)メソッドが使用されます。ここで、これらの変更を行う必要があります。

必要な作業は次のとおりです。

/**
 * Set bounds for the right textView including clip padding.
 *
 * @param curViewBound
 *            current bounds.
 * @param curViewWidth
 *            width of the view.
 */
private void clipViewOnTheRight(RectF curViewBound, float curViewWidth, int right) {
    curViewBound.right = right - mClipPadding + curViewWidth/2;
    curViewBound.left = curViewBound.right - curViewWidth;
}

/**
 * Set bounds for the left textView including clip padding.
 *
 * @param curViewBound
 *            current bounds.
 * @param curViewWidth
 *            width of the view.
 */
private void clipViewOnTheLeft(RectF curViewBound, float curViewWidth, int left) {
    curViewBound.left = left + mClipPadding - curViewWidth/2;
    curViewBound.right = mClipPadding + curViewWidth;
}

これらの変更を TitlePageIndicator.java ファイルに加える必要があります。

于 2012-09-19T19:06:48.243 に答える