Android布局如何以RelativeLayout为中心定制ListView?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (29)

我真的把头发拉过来。一些背景。我有一个项目列表,旁边都有复选框。当您取消选择复选框时,会出现一个按钮,允许您从列表中删除该项目。这起初看起来倒退了,但我们只希望“选定”的项目有资格进行进一步处理,等等。这是我的布局:

<RelativeLayout android:id="@+id/rlBlahBlah" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content"
                android:minHeight="?android:attr/listPreferredItemHeight"
                xmlns:android="http://schemas.android.com/apk/res/android">
  <CheckBox android:text="" 
            android:id="@+id/cbDeleteItem" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:focusable="false"
            />
  <TextView android:text="" 
            android:id="@+id/tvItemText" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:textSize="14dip"
            android:paddingLeft="3dip"
            android:paddingRight="3dip"
            android:paddingTop="13dip"
            android:gravity="fill_vertical"
            android:layout_toRightOf="@id/cbDeleteItem"
            />
  <Button android:layout_height="wrap_content" 
          android:id="@+id/btnDelete" 
          android:text="Delete" 
          android:layout_width="wrap_content"
          android:layout_alignParentRight="true"
          android:gravity="center_vertical"
          android:focusable="false"
          />
</RelativeLayout>
提问于
用户回答回答于

你的问题可能不是由于布局,而是你如何膨胀布局。事实上,这可能是我的错,取决于你学习技术的地方......

适配器中正确使用inflate()是: inflate(layoutId,parent,false); 将父项(作为getView()中的参数给予您)允许UI工具包创建相应的LayoutParams对象。传递错误告诉工具包不要调用parent.addView(theInflateChild),因为ListView稍后会做自己的魔术。

如果你inflate(layoutId, null)按照传统建议使用,除非您尝试使用行RelativeLayout作为基本布局并尝试使用垂直居中,否则生活还行。

用户回答回答于

这个属性为我工作Button使用RelativeLayout

android:layout_centerInParent="true"

扫码关注云+社区

领取腾讯云代金券