通常、scrollviewでリストビューをネストすることはありませんが、インタビュアーが私がネストすると主張しても大丈夫です。
scrollviewにlistViewを追加すると、ListViewコントロールが不完全になり、通常1つだけが表示されます。理由は何ですか?
2つのコントロール間のスクロールイベントの競合は、結果として生じます。したがって、ListView内のアイテムの数を介してListViewの表示高さを計算して、完全に表示する必要があります。参照のために次の方法が提供されています。
解決策は次のとおりです。
lv =(listView)findViewById(r.id.lv); adapter = new MyAdapter(); lv.setadapter(adapter); setListViewHeightBasedOnChildren(LV); --------------------------------------------------- Public void SetListViewHeightBadedOnChildren(ListView ListView){ListAdapter ListAdapter = ListView.GetAdapter(); if(listadapter == null){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)); params.height += 5; listView.setLayoutParams(PARAMS); }この段階で対処する最良の方法は、Custom ListView、OnMeasure()メソッドをオーバーロードし、すべてのディスプレイを設定することです。
Android.widget.listviewをインポートします。 / ** * * @description:scrollviewの埋め込みリストビューの簡単な実装 * * @file:scrollviewwithlistview.java * * * @version */ public class scrollviewwithlistview {public scrollviewwithlistview(android.content.content.context.context.context.context.context.context.context.content.content.content.content.content.content.content.content.content。スーパー(コンテキスト、attrs); } / ** * integer.max_value >> 2。設定されていない場合、システムのデフォルト設定は2つのピースを表示することです * / public void onmeasure(int widthmeasurespec、int heightmeasurespec){int expandSpec.makemeasurespec(integer.max_value >> super.onmeasure(widthmeasurespec、expandspec); }}上記のコンテンツは、編集者が紹介したScrollViewにListViewを埋め込むソリューションです。私はそれが誰にでも役立つことを願っています!