そのために、子ビューに異なる寸法を使用しました。密度によって異なります。しかし、それでも彼らは画面の最後に子供全体を表示するいくつかのデバイスです。
これは、多くのデバイスではうまく機能しません。これらのオレンジ色の子ビューがすべて同じ幅であり(それほど重要ではありませんが)、HorizontallScrollView
最初にレイアウトされたときにのみ半分を表示したい場合は、ビューにRunnable
(onCreate
メソッドで)投稿するだけで、適切な寸法に幅を設定して、適切な外観を作成します。
public void onCreate(Bundle saved) {
// ... work
horizontalScrollView.post(new Runnable() {
@Override
public void run() {
DisplayMetrics dm = getResources().getDisplayMetrics();
int screenWidth = dm.widthPixels;
// based on this width, the space between the children and their
// widths calculate new widths so you get a half clipped
// children on the right side.
}
});
}
ただし、ユーザーに追加のコンテンツが表示されることを本当に確認したい場合は、これを避けて、(メソッドをHorizontalScrollView
オーバーライドしdispatchDraw
てそこに何かを描画する(おそらく後で少し後で非表示にする))にはるかに強力なインジケーターを設定するだけです。 Runnable
。