当前位置: 首页 > 面试题库 >

Android布局以RelativeLayout为中心,用于自定义ListView

陶成济
2023-03-14
问题内容

我真的很想把头发拔出来。一些背景。我有一个项目列表,所有项目旁边都有复选框。取消选择复选框后,将出现一个按钮,您可以从列表中删除该项目。乍一看似乎是倒退,但我们只希望“选定”的项目有资格进行进一步处理,等等。这是我的布局:

<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>

我无法使这3个物品在行中垂直居中以挽救生命。layout_gravitygravitylayout_centerVertical,没有它的工作原理。我敢肯定,我的问题是要在某个地方翻转一下,但我确实对此持怀疑态度。

编辑:我知道textview是“ fill_vertical”,这是我正在尝试一些随机的东西。


问题答案:

您的问题可能不在于布局,而在于如何扩大布局。实际上,这甚至可能是我的错,具体取决于您学习技术的地方…

引用无所不在的罗曼·盖伊:

适配器中inflate()的正确用法是:

inflate(layoutId,parent,false);

传递父项(作为getView()中的参数提供给您)允许UI工具箱创建适当的LayoutParams对象。传递false告诉工具包不要调用parent.addView(theInflateChild),因为ListView稍后会做自己的魔术。

如果您inflate(layoutId, null)按照我的传统建议使用,那么生活就可以了,除非您尝试将其RelativeLayout用作行的基本布局并尝试使用垂直居中。

我将在接下来的几周中更新我的书,以反映新的建议。



 类似资料:
  • 本文向大家介绍Android RelativeLayout 相对布局,包括了Android RelativeLayout 相对布局的使用技巧和注意事项,需要的朋友参考一下 示例 RelativeLayout是一个ViewGroup以相对位置显示子视图的。默认情况下,所有子视图都绘制在布局的左上角,因此您必须使用中提供的各种布局属性来定义每个视图的位置RelativeLayout.LayoutPar

  • 在上一节中我们讲到了 LinearLayout,这也是大家学到的第一个布局方式。它支持将多个 View 通过线性的方式(水平或垂直)组合起来,其中最实用的就是 weight 属性,用好 weight 可以让你的线性布局更灵活美观。 然而,在上一节的例子中我们发现,如果需要在多个方向上进行布局,就要嵌套多个 LinearLayout,可以想象如果我们的 UI 足够复杂,那么从工作量和性能上都将是一场

  • 本文向大家介绍Android  AbsoluteLayout和RelativeLayout布局详解,包括了Android  AbsoluteLayout和RelativeLayout布局详解的使用技巧和注意事项,需要的朋友参考一下 Android 线性布局: AbsoluteLayout布局和RelativeLayout布局。  1、绝对布局 AbsoluteLayout 绝对定位Absolute

  • 本文向大家介绍Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解,包括了Android常用布局(FrameLayout、LinearLayout、RelativeLayout)详解的使用技巧和注意事项,需要的朋友参考一下 很多开发者一听说Android终端的屏幕尺寸五花八门,屏幕分辨率千奇百怪,就觉得Android开发在屏幕适配方面是必定是

  • 本文向大家介绍Android运用onTouchEvent自定义滑动布局,包括了Android运用onTouchEvent自定义滑动布局的使用技巧和注意事项,需要的朋友参考一下 写在自定义之前 我们也许会遇到,自定义控件的触屏事件处理,先来了解一下View类中的,onTouch事件和onTouchEvent事件。 1、boolean onTouch(View v, MotionVent event)