2015-03-31 46 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

相关问题