4

カスタマイズされたビューを含むリストを Android に実装したいと考えています。私の問題は、ビューを次々に配置して、それらの間で少しオーバーラップすることです。次のスキーマのように:ここに画像の説明を入力

また、ユーザーがアイテムの 1 つをクリックすると、アイテムが互いに離れて移動するように、このオーバーラップを制御したいと考えています。

ListView を拡張しようとしましたが、非常にわかりにくいようです。何か提案はありますか?

編集:これはより明確になる可能性があります:

ここに画像の説明を入力

仕切りの高さを -50dp に設定することでそれを行いました。これはまさに私が達成したいことですが、どういうわけか私のアプリには反映されません。

4

2 に答える 2

4

子として単一の相対レイアウトでスクロール ビューを使用することで、これを達成することができました。次に、ルールとマージンを定義してビューを動的に配置します。

for (int i = 0; i < 30; i++) {
        TextView tv = new TextView(context);
        tv.setText("Text \n Text" + i);

        tv.setBackgroundColor(i % 2 == 0 ? Color.RED : Color.GREEN);

        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        lp.addRule(RelativeLayout.ALIGN_PARENT_TOP);
        lp.leftMargin = 0;
        lp.topMargin = (i * 45);
        rl.addView(tv, lp);
}

後で、y 値を変更してサブビューの位置を制御できます (たとえば、アニメーションを追加する場合)。

これが最終結果です。

アイテムが重なっているレイアウト

于 2012-11-27T07:29:20.540 に答える
1

これはおそらくCamera.setTranslate関数を使用することで達成できます。同様の質問については、Android:行が重複する垂直リストビューおよびAndroid:垂直3Dリストビューを参照してください(ソリューション付き)

于 2012-11-27T07:37:07.670 に答える