这是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
行布局。
答案 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" />
答案 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
出现。这样的结果是你期待的结果吗? (忽略颜色,我硬编码了它的值)
我猜测你是以编程方式设置适当的文本值;来自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文件夹中有一张图片