2

私の活動はこんな感じ

| header           |
|------------------|
|  ViewGroup       |
|  that fills      |
|  the screen      |
|                  |
|     centered     |
|      button      |
|                  |
|------------------|
| footer           |

画面を埋めるビュー グループは、RelativeLayout が fill_parent と layout_below ヘッダーと layout_above フッターで画面を埋める RelativeLayout の子です。その RelativeLayout の下の ViewGroup は、実行時に RelativeLayout と同じ幅と高さに設定されます。

実行時に同じ高さに設定されている理由は、このビュー グループを指で左にドラッグできるためです (Android のホーム画面と同様)。左にドラッグすると問題ありません。しかし、それを右にドラッグすると、fill_parent の寸法が台無しになります。

| header           |
|------------------|
|     '  ViewGroup |     ' 
|     '  that fills|     '
|     '  the screen|     '
|     '            |     '
|     '  centered  | <-- button not centered. It is only centered on the visible area, not the whole thing
|     '   button   |     '
|     '            |     '
|     '            |     '
|------------------|
| footer           |

私がポジショニングを行っている方法は、右にシフトする ViewGroup の左マージンを設定することです(または左にシフトするには負に設定します)

使えない理由HorizontalScrollView

これはアンドロイドの上面図です

     ' previous ' current  '   next   ' # Three panes that can be dragged to switch between
                |          | # The android screen bounderies

ユーザーが画面を左右にドラッグして次/前に移動できるようにする予定です。ユーザーが画面を少しドラッグし、ゆっくりとドラッグした場合

        ' previous ' current  '   next   ' 
                |          |

その後、画面がアニメーション化されて元の位置に戻ります

     ' previous ' current  '   next   ' 
                |          |

ユーザーがすばやく行う場合

              ' previous ' current  '   next   ' 
                |          |

その後、画面は残りの方法でアニメーション化する必要があります

                ' previous ' current  '   next   ' 
                |          |

以前は新しい現在になり、新しい以前のものが必要です

     ' previous ' current  '   next   ' 
                |          |

私はこのようなことをするスクロールビューを使用しました

     ' previous ' current  '   next   ' 
     |          |

スクロールをジャンプしない限り、新しい過去の余地はありません

     ' previous ' current  '   next   ' 
                |          |

それは私にはさらに悪いように聞こえます。

だから私のオプションは

  • AbsoluteLayout(非推奨 / 使用しないでください)
  • RelativeLayout.LayoutParams.setMargins(以下を参照してください。これが私が今していることです)
  • 自分で書くLayoutManager(実際よりも簡単に聞こえます)
  • Views (DirectDraw または OpenGL)を使用する代わりに、ピクセルを画面に描画します。
  • HorizontalScrollView
4

1 に答える 1

5

正の左マージンを設定する場合は、負の右マージンも設定する必要があります。これにより、ViewGroup を画面の右側の端からはみ出すことができます。

于 2011-01-21T03:51:12.003 に答える