2011-10-19 7 views
1

リストビューに問題があります。リストビューを表示するためにスクロールしたときにのみ発生します。ここで リストビューをスクロールするときリストアイテムをクリックできない

が私のメインのXMLファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<LinearLayout 
    android:id="@+id/AddAlarm" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:clickable="true" 
    android:layout_margin="10dp" > 
<ImageView 
    android:src="@drawable/add" 
    android:gravity="right" 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:layout_marginRight="0dp"/>    
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="20dp" 
    android:gravity="left" 
    android:textSize="25dp" 
    android:text="@string/add_alarm" /> 
</LinearLayout>  
<ListView 
    android:id="@+id/ListaAlarmas" 
    android:scrollbars="vertical" 
    android:focusable="false" android:clickable="false" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 
</LinearLayout> 

そして、これは上記リストビューにロードされた私の行項目のxmlです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="horizontal" > 
<ToggleButton 
    android:id="@+id/CheckBox" 
    android:textOn="" 
    android:textOff="" 
    android:focusableInTouchMode="false" 
    android:focusable="false" 
    android:layout_gravity="center" 
    android:background="@drawable/clock_off" 
    android:layout_margin="10dp" 
    android:layout_height="45dp" 
    android:layout_width="45dp" /> 
<View 
    android:id="@+id/firstDivider" 
    android:layout_height="fill_parent" 
    android:focusableInTouchMode="false" 
    android:focusable="false" 
    android:layout_width="2dp" 
    android:background="#999999" />  
<LinearLayout 
    android:orientation="vertical" 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:layout_gravity="center_vertical" 
    android:focusableInTouchMode="false" 
    android:focusable="false" 
    android:layout_weight="3" 
    android:layout_marginLeft="30dp" > 
    <TextView 
     android:id="@+id/TextoHora" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="25dp"/> 
    <TextView 
     android:id="@+id/TextoRepetir" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
</LinearLayout>  

最初のLinearLayoutがクリック可能である(AddAlarm) ListViewに別の項目を追加するだけです。 ListViewの各項目はToggleButtonと2 TextViewsで構成されます。最初のトグルボタンがクリック可能ではなかったが、私は追加することによって解決:私はそれらを表示するには、下にスクロールする必要があるリストで非常に多くの項目があるまで

android:focusableInTouchMode="false" 
android:focusable="false" 

をだから、すべてが、正常に動作します。実際には、実際にスクロールするまでうまく動作します。 ListViewにもっと多くのアイテムがある場合でもうまく動作しますが、スクロールして表示しません。

問題は、スクロールするときにListViewの項目がクリックできなくなることです。 setOnItemClickListenerメソッドは使用されず、フォーカス(オレンジの背景)も取得されません。

問題は何ですか?

答えて

0

これは、あなたの問題を解決するかもしれないし、答えではないかもしれません。 カスタムアダプターでこれを試すことができます これは、フォーカス(オレンジの強調表示)を無効にします。

public CustomAdapterView(Context context,YourModel data) 
{ 
    super(context); 
    setOnClickListener((OnClickListener) context); 
    setClickable(true); 
    setFocusable(false); 
} 

NotifyDataSetChangedを使用してListViewを更新している場合、CustomAdapterでは正常に動作しません。投稿thisを参照してください。

+0

mahe madhi、ありがとうございました。ちょうど1つの質問は、私はちょうど私がtrueとfalseにxmlファイルでクリック可能とフォーカスを設定するようにあなたの例ではありませんか?私はそれを試みたが、うまくいかなかった。 スクロールを移動するまでは正常に動作するのでnotifyDataSetChangedの問題ではないと思います。 とにかく、ありがとうございました。 – sheldoncooper

0

次のようにリストビューのXMLを設定する必要があります: アンドロイド:descendantFocusability =「blocksDescendants」 、あなたがクリックすることができます。これは、リスト項目にトグルボタンが存在するためです。

関連する問題