Android - 视图正在发生但未显示

时间:2013-09-23 22:31:52

标签: android layout view

这是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行布局。

7 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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" />

enter image description here

答案 2 :(得分:0)

根据布局文件(错过容器布局BTW),我看到你要实现这个目标:

AB AB AC

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

这是正确的吗?

如果是这样,你应该将C设置为右下方的对齐,并将B设置在它上方,然后才决定如何处理A.

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

答案 3 :(得分:0)

尝试将WeightLossIndicator LinearLayout的LayoutWeight分配给android:layout_weight="1"

修改

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

再次修改

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

答案 4 :(得分:0)

我必须遗漏一些显而易见的内容,只需复制并粘贴您的xml,将文字分配给TextViews,并确认weightValueTextView出现。这样的结果是你期待的结果吗? (忽略颜色,我硬编码了它的值)

Layout screenshot

我猜测你是以编程方式设置适当的文本值;来自Activity的代码段会非常有用,以防万一你不小心做了其他任何你不应该做的事情。

答案 5 :(得分: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>

答案 6 :(得分:0)

我会首先尝试使用带有大显示屏的不同平板电脑。 setvisible true是否在代码中将此属性设置为false?相对布局是棘手的,如果你使用其他设备,它看起来很好看,它很可能不会出现你想要的样子。还有android:src =“@ drawable / mypic”并确保你在drawable文件夹中有一张图片