3
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/rootLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

    <ScrollView
        android:id="@+id/scrollView1"
        android:layout_width="wrap_content"
        android:layout_height="80dp"
        android:scrollbars="none"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:fillViewport="true" >

        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:src="@drawable/background" />
        </LinearLayout>

    </ScrollView>


    </LinearLayout>

これは私のxmlファイルです.これは非常に単純です. 私の意図は、スクロール ビューの高さを動的に増加させることであり、イメージ (スクロール ビューにある) ビューが徐々に表示されます。

final Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask() {
            public void run() {

                runOnUiThread(new Runnable()
                {
                    public void run() {

                        secondCounter++;
                        yourNewHeight += 10;

                        sv.getLayoutParams().height = yourNewHeight;

                        LinearLayout root = (LinearLayout)      findViewById(R.id.rootLayout);
                        root.invalidate();
                        Log.v("", "" +sv.getLayoutParams().height);

                        if(secondCounter == 20){
                            timer.cancel();
                        }
                    }
                });
            }
        }, delay, period);

これはJavaファイルの私のコードですが、機能していません。皆さん、私を助けてくれませんか..!!!

4

3 に答える 3

0

コードで XML を適切に拡張した場合 (つまり、 を呼び出したsetContentView()場合)、次を使用して rootLayout を参照できるはずです。

AbsoluteLayout root = (AbsoluteLayout) findViewById(R.id.rootLayout);

の高さを上げようとしているだけの場合は、ScrollView直接呼び出す方が理にかなっています。

ScrollView scroll = (ScrollView) findViewById(R.id.scrollView1);

上記のように、おそらくではなくRelativeLayoutorを使用する必要があります。LinearLayoutAbsoluteLayout

于 2012-07-12T10:43:20.637 に答える
0

ScrollView はその中に Child を 1 つしか持てないため、ScrollView 自体をルート要素として使用し、LinearLayout をその直接の唯一の子として使用し、その中に任意のビューを追加できます。

AbsoluteLayout は非推奨です。使用しないことをお勧めします

于 2012-07-12T10:43:47.213 に答える
0

このレイアウトのルートはAbsoluteLayout.

次のような呼び出しを使用して、このルートへの参照とViewそのすべての子を取得できます。Activity

mRootView = ((ViewGroup)findViewById(R.id.rootLayout));

は長い間減価償却されていることに注意してください。おそらく、レイアウトの残りの部分ややりたいことによっては、 、などAbsoluteLaoyutの代替 に置き換えたいと思うでしょう。ViewGroupLinearLayoutRelativeLayout

于 2012-07-12T10:42:03.620 に答える