私の活動では、3 つのリストがあります。アプリケーションを実行した後、画面はスクロールできません。他のリストの上にあるリストをスクロールできますが、ページ全体をスクロールできません。xml レイアウトに追加しようとしましScrollView
たが、リントは「垂直スクロールの ScrollView には別の垂直スクロール ウィジェット (ListView) を含めるべきではありません」と言っています。
画面をスクロール可能にするにはどうすればよいですか?
私の活動では、3 つのリストがあります。アプリケーションを実行した後、画面はスクロールできません。他のリストの上にあるリストをスクロールできますが、ページ全体をスクロールできません。xml レイアウトに追加しようとしましScrollView
たが、リントは「垂直スクロールの ScrollView には別の垂直スクロール ウィジェット (ListView) を含めるべきではありません」と言っています。
画面をスクロール可能にするにはどうすればよいですか?
この方法を試してください
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout android:id="@+id/GlobalLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView android:id="@+id/ListView1"
android:choiceMode="multipleChoice"
android:layout_height="100dip"
android:layout_width="fill_parent" />
<ListView android:id="@+id/ListView2"
android:choiceMode="multipleChoice"
android:layout_height="100dip"
android:layout_width="fill_parent" />
<ListView android:id="@+id/ListView3"
android:choiceMode="multipleChoice"
android:layout_height="100dip"
android:layout_width="fill_parent" />
</LinearLayout>
</ScrollView>
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1" >
</ListView>
</LinearLayout>
</ScrollView>
Scrollview は 1 つの子レイアウトをサポートするため、リストビューをスクロール内に作成して、必要なものを取得します。
このメソッドを使用すると、リストビューがスクロールビュー内でスクロール可能になります:-
ListView lstNewsOffer.setAdapter(new ViewOfferAdapter(
ViewNewsDetail.this, viewOfferList));
getListViewSize(lstNewsOffer);
void getListViewSize(ListView myListView) {
ListAdapter myListAdapter = myListView.getAdapter();
if (myListAdapter == null) {
// do nothing return null
return;
}
// set listAdapter in loop for getting final size
int totalHeight = 0;
for (int size = 0; size < myListAdapter.getCount(); size++) {
View listItem = myListAdapter.getView(size, null, myListView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
// setting listview item in adapter
ViewGroup.LayoutParams params = myListView.getLayoutParams();
params.height = totalHeight
+ (myListView.getDividerHeight() * (myListAdapter.getCount() - 1));
myListView.setLayoutParams(params);
// print height of adapter on log
Log.i("height of listItem:", String.valueOf(totalHeight));
}
できることは、ヘッダーとフッターを膨張させることでリスト ビューに追加できることです。3 つの xml レイアウトを作成し、ヘッダーとフッターを使用してリストビューに追加します。
View headerView = View.inflate(this, R.layout.layout_name, null);
lv.addHeaderView(headerView);
アダプタをセットする前に使用してください。lv はリストビューです。