2

ユーザーがListView内のアイテムをクリックしたときに、ビュー(ListView)を特定のサイズに拡大縮小しようとしています。ListViewの「元の」(開始)状態は次のように設定されます

layout_width="match_parent"

必要に応じて、ListViewは明らかに長方形です。ListViewを縮小して、長方形の左側(つまり、ListView)を画面/親アクティビティの左側に「固定」したままにする方法がわかりません。私がしたいのは、画面/親の右側からスライドインするListViewの右側だけです。y軸は拡大縮小または変更されず、ListViewの右側のみになります。これが十分に明確でない場合は、お詫び申し上げます。以下は、ユーザーがクリックしたときのListViewの開始状態と終了状態の大まかな図です。

忙しい猫http://dc589.2shared.com/download/mdK_EobN/listviewanimationjpeg.jpg?tsid=20130313-093629-3c816601

助けてくれてありがとう、ありがとう。

4

2 に答える 2

1

展開されたビューが常に最初にあることが確実な場合は、次のようにすることができます。

  1. 現在行っているように match_parent を使用して開始し、親コンテナーの水平方向のスペースをすべて占有するようにします。

  2. アクティビティをオーバーライドonWindowFocusChangedして、必要な最大幅を取得します

    @Override
    public void onWindowFocusChanged (boolean hasFocus) {
        // myComponentToBeResized.getMeasuredWidth(); 
    }
    
  3. この値の 50% を格納すると、完全に展開されたビューと部分的に展開されたビューの両方の幅が得られます。

  4. ビューを更新して、match_parent キーワードの代わりにピクセル (またはディップ) を幅として使用します。これで、ご覧のように 2 つの値の間でアニメーション化できます :)

于 2013-03-13T09:55:10.153 に答える
0

relativeLayoutこのレイアウトでListView追加android:alignParentLeft="true"を使用してから、listView でスケール アニメーションを使用してみてください。これらの属性を追加することandroid:alignParentTop="true"で、左側に固定されるようになります。うまくいくことを願っています。ListViewlistView

于 2013-03-13T09:43:44.757 に答える