尝试调整我的Android布局,如屏幕截图所示

时间:2013-12-09 12:44:22

标签: android layout

我正在尝试将我的布局与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>

6 个答案:

答案 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" />