我正在尝试将我的布局与image1对齐,但它就像image2一样。我不知道我在哪里犯错误。任何人都可以建议:
下面是我的布局代码:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:orientation="horizontal" >
<ImageView
android:id="@+id/facebook"
android:layout_width="0dp"
android:paddingLeft="10dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.5"
android:src="@drawable/facebook" />
<TextView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="10dip"
android:text="Facebook"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#444444"
android:textSize="20sp" />
<ImageView
android:id="@+id/facebook"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.5"
android:src="@drawable/ok" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:orientation="horizontal" >
<ImageView
android:id="@+id/facebook"
android:layout_width="0dp"
android:paddingLeft="10dip"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.5"
android:src="@drawable/twitter" />
<TextView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="10dip"
android:text="Twitter"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#4a82ae"
android:textSize="20sp" />
<ImageView
android:id="@+id/twitter"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_weight="0.5"
android:src="@drawable/ok" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:2)
根据您的要求尝试这样..
<?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="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:layout_gravity="start"
/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Android Hacker"
android:layout_weight="1"
android:textSize="15sp"
/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="okay"
android:layout_gravity="end"
android:src="@drawable/ic_launcher"
/>
</LinearLayout>
答案 1 :(得分:1)
刚刚修改了一行,使用相同的第二行
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:background="#ffffff"
android:orientation="horizontal" >
<ImageView
android:id="@+id/facebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="10dip"
android:src="@drawable/facebook" />
<TextView
android:id="@+id/list"
android:layout_width="0dp"
android:layout_weight=".8"
android:layout_height="wrap_content"
android:gravity="left|center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:paddingLeft="10dip"
android:text="Facebook"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#444444"
android:textSize="20sp" />
<ImageView
android:id="@+id/facebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:src="@drawable/ok" />
</LinearLayout>
答案 2 :(得分:0)
快速修复:
从左侧ImageView中删除layout_weight
属性,并将其layout_width
设置为wrap_content
。
正确方式: 每行不应是包含3个视图的LinearLayout。相反,请使用包含文本的CheckedTextView和右侧的检查。
现在,要获取左侧的图像,请在CheckedTextView的XML中使用android:drawableLeft="@drawable/yourIcon"
。您可以使用android:drawablePadding
调整该图像的填充。
答案 3 :(得分:0)
问题是你要为所有Views
分配相同的权重,因此即使ImageViews
不需要,它们也会划分它们之间的空间。尝试将android:layout_width="wrap_content"
用于ImageViews
并检查其是否有效。
答案 4 :(得分:0)
如何修复它还有更多选择。
我建议你只使用带有左右可绘制的textview
<TextView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeight"
android:text="Facebook"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="#444444"
android:textSize="20sp"
android:drawableLeft="@drawable/facebook"
android:drawableRight="@drawable/ok"/>
答案 5 :(得分:0)
你已经给予了对齐的元素的权重,而且它们也是如此,所以它们占据的空间相等。删除此属性并通过将重力设置为左侧将图标图像对齐到左侧。下一个文本将在没有任何重力的情况下对齐,并且刻度线图像将具有重力权。
只需设置正确的填充即可。 如,
<ImageView
android:id="@+id/facebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:paddingLeft="10dp"
android:src="@drawable/facebook" />
<TextView
android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:text="Facebook"
android:textColor="@android:color/black"
android:textSize="20sp" />
<ImageView
android:id="@+id/facebook"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|center_vertical"
android:src="@drawable/ok" />