【问题标题】:Aligning TextViews in RelativeLayout in FrameLayout在 FrameLayout 中的 RelativeLayout 中对齐 TextView
【发布时间】:2013-11-24 07:43:49
【问题描述】:

我在 FrameLayout 中使用 RelativeLayout,但我似乎无法正确对齐。这是我想要实现的目标的图片。感谢您的帮助,谢谢!

这是我当前的 XML:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="15dp"
    android:paddingBottom="15dp" >

<ImageView 
    android:id="@+id/imgDealImage"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:contentDescription="@string/dealImage" />

<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TextView 
        android:id="@+id/txtDealDesc"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textStyle="bold"
        android:textSize="24sp"
        android:textColor="#fff"
        android:paddingLeft="10dp"
        android:background="#80999999" />

    <TextView 
        android:id="@+id/txtSupporters"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/txtDealDesc"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#e6e600"
        android:paddingLeft="10dp" />

    <TextView 
        android:id="@+id/txtRegularPrice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/txtSupporters"
        android:layout_toRightOf="@id/txtSupporters"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#888"
        android:paddingBottom="20dp" />

    <TextView 
        android:id="@+id/txtDealPrice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@id/txtRegularPrice"
        android:layout_toRightOf="@id/txtRegularPrice"
        android:textStyle="bold"
        android:textSize="20sp"
        android:textColor="#01a05f" />

    </RelativeLayout>

</FrameLayout>

编辑:答案

我玩了一下,发现是我的 ImageView 设置为wrap_content,应该是fill_parent。感谢您的所有投入!

【问题讨论】:

    标签: android android-layout android-relativelayout android-framelayout


    【解决方案1】:

    试试这个:

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp" >
    
    <ImageView 
        android:id="@+id/imgDealImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
         />
    
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
        <TextView 
            android:id="@+id/txtDealDesc"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textStyle="bold"
            android:textSize="24sp"
            android:textColor="#fff"
            android:paddingLeft="10dp"
            android:background="#80999999"
            android:text="1" />
    
        <TextView 
            android:id="@+id/txtSupporters"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    
            android:textStyle="bold"
            android:textSize="20sp"
            android:textColor="#e6e600"
            android:paddingLeft="10dp"
            android:layout_centerInParent="true"
             android:text="2" />
    
        <TextView 
            android:id="@+id/txtRegularPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
                   android:textStyle="bold"
            android:textSize="20sp"
            android:textColor="#888"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
             android:text="3" />
    
        <TextView 
            android:id="@+id/txtDealPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    
            android:textStyle="bold"
            android:textSize="20sp"
            android:textColor="#01a05f"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
             android:text="4" />
    
        </RelativeLayout>
    
    </FrameLayout>
    

    【讨论】:

    • 不太好用。请注意,此 XML 用于我多次重复使用的动态 ListView 行。所以上面的代码,只是把第一个 TextView 放在左上角。其他两个 TextView 出现在它的下方,但它只在下一行。它不会将其与图像的底部对齐。我不需要android:text="x",因为我是动态添加的。
    • 亲爱的@Rock - 我们不是来为您的要求编写代码或设计的,请先了解这一点。我们可能会尝试帮助您,然后您需要尝试,所以请自己尝试。一切顺利。
    【解决方案2】:

    试试这个:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:orientation="vertical"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
            >
        <LinearLayout android:id="@+id/LinearLayout02" android:layout_height="wrap_content" android:layout_width="match_parent">
            <TextView android:id="@+id/Button04" android:text="Button" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"></TextView>
            <TextView android:id="@+id/Button05" android:text="Button" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"></TextView>
            <TextView android:id="@+id/Button06" android:text="Button" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"></TextView>
        </LinearLayout>
        <ImageView
                android:layout_width="fill_parent"
                android:layout_height="223dp"
                android:id="@+id/imageView" android:layout_gravity="center_vertical"/>
    
        <LinearLayout android:id="@+id/LinearLayout02"
                      android:layout_height="wrap_content"
                      android:layout_width="match_parent"
                      android:layout_gravity="bottom"
                      android:layout_alignParentBottom="true" >
            <TextView android:id="@+id/Button04" android:text="Button" android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content"></TextView>
    
            <TextView android:id="@+id/Button06" android:text="Button" android:layout_width="0dp" android:layout_weight="1"  android:layout_height="wrap_content"></TextView>
        </LinearLayout>
    
    
    
    </RelativeLayout>
    

    【讨论】:

    • 感谢您的代码,但我试图坚持使用 FrameLayout。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多