我无法使listView正确对齐嵌入式ImageView。
如下所示,图像没有正确对齐(它们受到相邻TextView中文本数量的影响):
以下是行项目的违规xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:gravity="left">
<ImageView
android:id="@+id/flagIcon"
android:layout_width="60sp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_weight="0.05"
android:src="@drawable/orange_flag"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical"
>
<TextView
android:id="@+id/location_row_item_main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"/>
<TextView
android:id="@+id/location_row_item_secondary_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="12sp"/>
</LinearLayout>
<Button
android:id="@+id/add_spec_button"
android:layout_width="60sp"
android:layout_height="60sp"
android:layout_gravity="center_vertical"
android:focusable="false"
android:text="@string/location_add_spec"
android:onClick="myClickHandler"/>
</LinearLayout>
有什么想法吗?感谢。
答案 0 :(得分:1)
布局视图
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_play_live" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_play_live" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignBottom="@+id/imageView1"
android:layout_toRightOf="@+id/imageView1"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:0)
尝试这样的事情:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:gravity="left">
<ImageView
android:id="@+id/flagIcon"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:src="@drawable/orange_flag"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|left"
android:orientation="vertical"
>
<TextView
android:id="@+id/location_row_item_main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"/>
<TextView
android:id="@+id/location_row_item_secondary_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="12sp"/>
</LinearLayout>
<Button
android:id="@+id/add_spec_button"
android:layout_width="60dp"
android:layout_height="60dp"
android:gravity="center"
android:focusable="false"
android:text="@string/location_add_spec"
android:onClick="myClickHandler"/>
</LinearLayout>
主要问题是由中心垂直LinearLayout
的宽度引起的。 ImageView
的权重也没用,它在RelativeLayout
中使用了一些属性。
注意1:注意android:gravity
和android:layout_gravity
之间的差异。
注2:sp
尺寸单位用于文字大小。来自文档:
dp是与物理相对应的与密度无关的像素 160 dpi的像素大小。
sp是相同的基本单位,但是是缩放的 根据用户的首选文本大小(它是与比例无关的像素),所以 在定义文本大小时应使用此测量单位(但是 从来没有布局尺寸)。