2015-03-31 79 views
1

我想要在列表視圖頂部放置一個帶有按鈕的線性佈局。它工作正常。但問題是沒有觸發按鈕的OnClick偵聽器。我看到列表視圖的內容顯示在按鈕(和線性佈局)的頂部。這裏是XML將LinearLayout放在列表視圖頂部

<RelativeLayout 
      android:id="@+id/relativeLayoutOrdersDetails" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"   
      android:background="#cc503F7F"        
      > 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingRight="5dp" 
       android:paddingBottom="5dp" 
       android:layout_alignParentBottom="true"     
       android:layout_alignParentRight="true" > 

       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/imageViewOrdersAddItem" 
        android:src="@drawable/ic_orders_add_item"    
        /> 
      </LinearLayout> 

      <ListView 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/listViewOrderDetails"     
       > 

      </ListView> 

     </RelativeLayout> 

這裏只是爲了測試,如果聽衆將被觸發的代碼,但它沒有。

imageViewOrdersAddItem = (ImageView)findViewById(R.id.imageViewOrdersAddItem); 
    //imageViewOrdersAddItem.bringToFront(); 
    imageViewOrdersAddItem.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      AppMessages.showMessage(OrdersActivity.this, "ADD BUTTON CLICKED", "ADD"); 
     } 
    }); 

我也試過.bringToFront()在其他SO線程中建議,但它不起作用。

當我點擊按鈕時,listitem是點亮的那個(被突出顯示)。

在此先感謝。

+0

嘗試將佈局放入listview的headerview中,然後嘗試 – virendrao 2015-03-31 03:56:04

回答

2

在RelativeLayout的後聲明的元素:

,你能做些什麼,它通過設置的LinearLayout的ID和放置ListView中的LinearLayout下使用layout_below設置ListView控件的適當佈局除非指定了排序和對齊,否則特定元素的z順序高於先前定義的順序。所有的點擊都被列表視圖所佔用。只需將您的xml佈局重新排序即可。

 <RelativeLayout 
     android:id="@+id/relativeLayoutOrdersDetails" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"   
     android:background="#cc503F7F"        
     > 

     <ListView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/listViewOrderDetails"     
      > 

     </ListView> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:paddingRight="5dp" 
      android:paddingBottom="5dp" 
      android:layout_alignParentBottom="true"     
      android:layout_alignParentRight="true" > 

      <ImageView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/imageViewOrdersAddItem" 
       android:src="@drawable/ic_orders_add_item"    
       /> 
     </LinearLayout> 


    </RelativeLayout> 
+0

這會導致以下錯誤:E/AndroidRuntime(9105):java。 lang.RuntimeException:無法啓動活動ComponentInfo {com.mycomp.mysystem/com.mycomp.mysystem.OrdersActivity}:java.lang.ClassCastException:android.widget.ImageView無法轉換爲android.widget.ListView – 2015-03-31 03:52:51

+0

我關閉了Eclipse和一切都在工作。謝謝。 – 2015-03-31 03:58:04

2

這是因爲listview直接位於linearlayout的下方並覆蓋按鈕的onclick。

<LinearLayout 
       android:id="@+id/linearlayoutbutton" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingRight="5dp" 
       android:paddingBottom="5dp" 
       android:layout_alignParentBottom="true"     
       android:layout_alignParentRight="true" > 

       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:id="@+id/imageViewOrdersAddItem" 
        android:src="@drawable/ic_orders_add_item"    
        /> 
      </LinearLayout> 

      <ListView 
       android:layout_width="match_parent" 
       android:layout_below="@+id/linearlayoutbutton" 
       android:layout_height="match_parent" 
       android:id="@+id/listViewOrderDetails"     
       > 

      </ListView> 
+0

這就是我已經擁有的。我的意思是我應該先添加listview,然後是Linearlayout,然後發生E/AndroidRuntime(9105)異常:java.lang.RuntimeException:無法啓動活動ComponentInfo {com.mycomp.mysystem/com.mycomp。 mysystem.OrdersActivity}:java.lang.ClassCastException:android.widget.ImageView無法轉換爲android.widget.ListView – 2015-03-31 03:46:40

+0

@DiegoBandido然後刪除對齊父母的底部 – 2015-03-31 03:48:12

相關問題