我创建了一个列表视图,其中包含自定义适配器和包含ImageView和TextView的自定义行布局。
我的问题是什么,因为
* 黑色矩形表示每行中的图标
包含这些视图的视图是线性布局,我尝试做的是将重力设置为居中。这行得通。但是当涉及长标题时,Icon会移出中间。
我怎样才能成功获得以下结果,无论标题长度是多少(虽然不够大)?
提前致谢! 我的xml文件:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:gravity="center">
<ImageView
android:id="@+id/menu_item_icon"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"/>
<TextView
android:id="@+id/menu_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Item_name"
android:textColor="#fff"
android:textSize="16sp"
android:gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_gravity="center_vertical"/>
</LinearLayout>
答案 0 :(得分:1)
这是不可能的,因为线性布局的重力是“ center ”,您应该将此线性布局的重力更改为“左”并执行任何<您希望在视图左侧显示strong> margin 。
答案 1 :(得分:0)
那样做:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
>
<ImageView
android:id="@+id/menu_item_icon"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"/>
<TextView
android:id="@+id/menu_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Item_name"
android:textColor="#fff"
android:textSize="16sp"
android:gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_gravity="center_vertical"/>
</LinearLayout>
答案 2 :(得分:0)
试试这个
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">
<ImageView
android:id="@+id/menu_item_icon"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"
android:layout_marginRight="10dp"
android:layout_marginEnd="10dp"
android:layout_gravity="center_vertical"/>
<TextView
android:id="@+id/menu_item_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Item_name"
android:textColor="#fff"
android:textSize="16sp"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"/>
答案 3 :(得分:0)
将gravity
的{{1}}更改为LinearLayout
,设置left
的{{1}}
layout_marginLeft