3

这是 XML:

 <?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"
    android:background="@android:color/transparent" >

    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/weightLossIndicator"
        android:paddingLeft="15dp"
        android:paddingRight="10dp"
        android:orientation="vertical">

        <TextView 
            android:id="@+id/weightValueTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="10dp"
            android:textColor="@android:color/black"
            android:textSize="30sp"
            android:textStyle="normal" />

        <TextView 
            android:id="@+id/weightDateTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@android:color/black"
            android:textSize="20sp" />

        <TextView 
            android:id="@+id/weightDifferenceTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingBottom="10dp"
            android:textColor="@android:color/black"
            android:textSize="20sp" />

    </LinearLayout>

    <ImageView 
        android:id="@+id/weightLossIndicator"
        android:layout_width="10dp"
        android:layout_height="match_parent"
        android:layout_alignParentRight="true"
        android:background="@color/change_green"/>

    <View 
        android:id="@+id/separator"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:layout_alignParentBottom="true"
        android:layout_below="@+id/weightLossIndicator"
        android:layout_marginLeft="15dp"
        android:background="@color/dark_blue" />


</RelativeLayout>

该视图weightLossIndicator不会出现在设备和模拟器上,尽管它会影响布局上的其他元素(它们的位置)。背景颜色是不透明的,并且确实出现在图形布局中。

更新: 我尝试将 ImageView 的固定高度设置为 40 dp,你猜怎么着,它出现了!使用有问题,match_parent但我不知道是什么。我还不得不说,我正在使用这个 XML 作为ListView行布局。

4

7 回答 7

1

你应该使用

<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/weightLossIndicator"
    android:paddingLeft="15dp"
    android:paddingRight="10dp"
    android:orientation="vertical">

    <TextView 
        android:id="@+id/weightValueTextView"
        android:text="valueText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:textColor="@android:color/black"
        android:textSize="30sp"
        android:textStyle="normal" />

    <TextView 
        android:id="@+id/weightDateTextView"
        android:text="dateText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:textSize="20sp" />

    <TextView 
        android:id="@+id/weightDifferenceTextView"
        android:text="differencetext"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:textColor="@android:color/black"
        android:textSize="20sp" />

</LinearLayout>

<ImageView 
    android:id="@+id/weightLossIndicator"
    android:layout_width="10dp"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:layout_marginBottom="3dp"
    android:background="#00FF00"/>

<View 
    android:id="@+id/separator"
    android:layout_width="match_parent"
    android:layout_height="3dp"
    android:layout_alignParentBottom="true"
    android:layout_marginLeft="15dp"
    android:background="#0000FF" />

在此处输入图像描述

于 2013-10-07T13:02:49.693 回答
1

<View
    android:id="@+id/separator"
    android:layout_width="match_parent"
    android:layout_height="1dp"
    android:layout_alignParentBottom="true"
    android:background="@color/dark_blue" />

<ImageView
    android:id="@+id/weightLossIndicator"
    android:layout_width="10dp"
    android:layout_height="match_parent"
    android:layout_above="@+id/separator"
    android:layout_alignParentRight="true"
    android:background="@color/change_green" />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/separator"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_toLeftOf="@+id/weightLossIndicator"
    android:orientation="vertical"
    android:paddingLeft="15dp"
    android:paddingRight="10dp" >

    <TextView
        android:id="@+id/weightValueTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="10dp"
        android:textColor="@android:color/black"
        android:textSize="30sp"
        android:textStyle="normal" />

    <TextView
        android:id="@+id/weightDateTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@android:color/black"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/weightDifferenceTextView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingBottom="10dp"
        android:textColor="@android:color/black"
        android:textSize="20sp" />
</LinearLayout>

于 2013-10-07T11:28:54.213 回答
0

我会先尝试使用带有大显示屏的不同 avd。setvisible true 这个属性在代码中设置为 false 吗?相对布局很棘手,一旦你使用其他设备让它看起来不错,它很可能不会像你想要的那样显示。还有 android:src ="@drawable/mypic" 并确保你在可绘制文件夹中有一张图片

于 2013-10-07T17:48:49.493 回答
0

尝试将您的 WeightLossIndicator LinearLayout 分配LayoutWeightandroid:layout_weight="1"

编辑:

实际上,我注意到您有兄弟姐妹的观点。取决于您想要如何布局视图(可能是 50%/%50),然后您可以同时应用 linearlayout 和 ImageView 来使用android:layout_weight="1"

再次编辑

如评论中所示,此方案仅适用于包含在 LinearLayout 内的子布局。

于 2013-09-30T20:17:32.903 回答
0

我一定遗漏了一些明显的东西,只需复制并粘贴您的 xml,将文本分配给TextViews,并确认weightValueTextView出现。你期待的结果是这样的吗?(忽略颜色,我硬编码了它的值)

布局截图

我猜您正在以编程方式设置适当的文本值;你的一个片段Activity会很有用,以防万一你不小心做了其他不应该做的事情。

于 2013-10-01T23:18:23.153 回答
0
// try this
<?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="match_parent"
              android:background="@android:color/transparent">
    <LinearLayout
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:paddingLeft="15dp"
            android:paddingRight="10dp"
            android:orientation="vertical">

        <TextView
                android:id="@+id/weightValueTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="10dp"
                android:textColor="@android:color/black"
                android:textSize="30sp"
                android:textStyle="normal" />

        <TextView
                android:id="@+id/weightDateTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="@android:color/black"
                android:textSize="20sp" />

        <TextView
                android:id="@+id/weightDifferenceTextView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingBottom="10dp"
                android:textColor="@android:color/black"
                android:textSize="20sp" />

    </LinearLayout>

    <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="15dp"
            android:orientation="vertical">
        <ImageView
                android:id="@+id/weightLossIndicator"
                android:layout_width="10dp"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:background="@color/change_green"/>
        <View
                android:id="@+id/separator"
                android:layout_width="match_parent"
                android:layout_height="1dp"
                android:background="@color/change_green" />

    </LinearLayout>

</LinearLayout>
于 2013-10-04T04:04:31.167 回答
0

根据布局文件(它错过了容器布局顺便说一句),我看到你想要实现这个:

AB AB AC

其中 A 是 LinearLayout(没有 id),B 是 weightLossIndicator,C 是分隔符。

这个对吗?

如果是这样,您应该将C设置为与右下角对齐,并将B置于其上方,然后才决定如何处理A。

另外,如果 B 仍然无法占用空间,请尝试改用 ImageView 。

于 2013-09-23T22:47:21.553 回答