0

私はいくつかの入力で成長するいくつかの動的リストを持っています。また、タブとその上にいくつかのレイアウトがあります。リストが成長するだけでなく、それらをスクロールしたいです。簡単に言えば、完全なリストをロードするのではなく、リストをスクロールするときに他のものをスクロールします。私はこのようなことをしています。

  <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >

            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:dividerPadding="5dp"
                android:orientation="horizontal" />

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="0dp"
                android:layout_height="0dp"
                android:layout_weight="0" />

            <FrameLayout
                android:id="@+android:id/realtabcontent"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1" />
        </LinearLayout>
    </TabHost>
</ScrollView>

また、タブをスクロールしたいことに注意してください。現在このコードを使用しています

public static class Utility {
    public static void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter(); 
        if (listAdapter == null) {
            // pre-condition
            return;
        }

        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
            View listItem = listAdapter.getView(i, null, listView);
            listItem.measure(0, 0);
            totalHeight += listItem.getMeasuredHeight();
        }

        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
        listView.setLayoutParams(params);
    }
}

リストビューを作成しますが、画面をロードすると、タブからではなくリストから画面にフォーカスします。上からフォーカスを開始する方法を知っている人は誰でも助けてください

4

1 に答える 1

0

ListViewは、常に他のリストとは独立してスクロールします。すべてを一緒にスクロールさせたい場合は、LinearLayoutを使用してListViewを模倣し、各行をレイアウトに追加することを検討する必要があります。これにより、レイアウトが外側のスクロールビューコンテナに強制的に準拠します。

于 2012-08-09T11:02:53.407 に答える