は、同じアクティビティで2つのListViewを絞り込もうとしました。これは、標準(垂直)LinearLayoutに含まれる2つの別々のListFragmentを使用して動作します。2つのListViewをスクロールして、LinearLayoutを代入しようとしました。
問題は、2つのリストが一緒に画面より長くなっているため、2番目のリストが部分的に隠されていることです。視覚的には、ユーザは画面全体をドラッグして2番目のリストを表示することを期待しています。しかし、2つのリストは独自の内部スクロールを持ち、画面全体を1つのスクロールとしてスクロールすることはできません。
幸いなことに、リストには実際には非常に少ないアイテムが含まれています(平均5個)。ですから、理論的には、代わりに2つのLinearLayoutsコンテナを配置することができました。問題は、リストによって表示されるデータがカーソルから来て、動的であることです。私はCursorAdapterのnewView()メソッドとbindView()メソッドを認識していますが、リストビューの代わりにLinearLayoutコンテナにアダプタをどのように接続できるかはよく分かりません。私。 CursorAdapterは、カーソル内にある5つの項目のうち5つの行項目を作成する必要があることをどのようにして知っていますか? LinearLayoutコンテナにカーソル項目を反復して項目を作成するループはどこで作成しますか?また、Cursorのデータが変更されたときに、LinearLayoutの内容をどのように更新するのですか?これらの問題をListActivityによって提供されるListViewにきれいにラップしているすべての例ですが、ListViewを使用することはできません!
私は混乱しています!マヌー
EDIT
:ここはbreceivemail提案下記(断片)活性のXMLレイアウトです。コメントはBreceivemailの提案の前に、元のLinearLayoutコンテナです。また、アクティビティ全体がTabHostに含まれていることにも注意する必要がありますが、それが手元の問題のために何か違いを生むかどうかはわかりません。
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<!--
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
-->
<TextView android:id="@+id/title"
android:textSize="36sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/SelectPlayer"/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Playing"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#000000"
android:background="#999999"/>
<fragment android:name="com.myDomain.myApp.PlayerListFragment"
android:id="@+id/playing"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/Reserve"
android:textSize="18sp"
android:textStyle="bold"
android:textColor="#000000"
android:background="#999999"/>
<fragment android:name="com.myDomain.myApp.PlayerListFragment"
android:id="@+id/reserve"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
2つのリストビューが画面サイズに合うように、レイアウトを作成するほうがよいソリューションではないでしょうか? – kaspermoerch
これは公正なコメント@ KasperMoerchですが、リスト項目の高さはデザインによって非常に大きくなります。リスト項目は、特に最初のリストにある項目をすばやくタップする必要があります。大きなものは、それに到達してやりとりする方が速いというUI原則です。 – manu3d
これはすべて公平ですが、ListViewの一般的な点は、スクロール可能であることです。つまり、リスト内の必要なポイントにスクロールするだけで、1つの画面に2つのListViewがある場合は、それぞれの画面。私はあなたが何らかのゲームを作っているという印象を受けました。これはすばらしいことです。これを批判や頑固なものと見なすべきではありません。私はあなたのUIデザインの選択に挑戦しようとしています。より良い解決策があるかもしれません。 – kaspermoerch