嗨,我想实施以下图片
当我进入android studio的XML设计时,它正是我想要的,但当我运行应用程序时未显示的圆圈下的直线可以任何机构给我一些提示来解决这个问题吗? (我也使用FrameLayout而不是RelativeLayout但没有工作)
编辑:实际上我的问题是RelativeLayout,它包含直线而不是其他RelativeLayout的高度。有谁知道如何解决这个问题?!
编辑2:我将父级的relativeLayout更改为LinearLayout并且它已经工作了!我不知道为什么,但它的工作!
经过一些更改之后,这是我的一行列表:
<?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:layout_gravity="left"
android:orientation="horizontal">
<RelativeLayout
android:layout_width="@dimen/circle_area_radius"
android:layout_height="match_parent">
<ImageView
android:layout_width="3dp"
android:layout_height="match_parent"
android:layout_marginLeft="@dimen/half_circle_area_radius"
android:background="@color/orange" />
<ImageView
android:id="@+id/circle"
android:layout_width="@dimen/circle_area_radius"
android:layout_height="@dimen/circle_area_radius"
android:src="@drawable/circle" />
<com.mycompany.ui.customui.PersianTextView
android:id="@+id/araNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:layout_marginTop="22dp"
android:text="1299"
android:textColor="@color/abc_secondary_text_material_dark"
android:textSize="12sp" />
</RelativeLayout>
<!-- our content -->
<LinearLayout
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="@dimen/pager_margin"
android:layout_marginTop="@dimen/global_padding_large"
android:background="@drawable/balloon_incoming_normal"
android:orientation="vertical">
<com.mycompany.ui.customui.PersianTextView
android:id="@+id/itemText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginLeft="@dimen/global_padding_large"
android:layout_marginRight="@dimen/global_padding"
android:layout_marginTop="@dimen/global_padding"
android:ellipsize="end"
android:gravity="right"
android:textColor="@color/dark_gray"
android:textSize="@dimen/textsize_medium" />
<ImageView
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="@dimen/global_padding_large"
android:layout_marginRight="@dimen/global_padding_large"
android:layout_marginTop="@dimen/global_padding"
android:background="@color/gray_20" />
<com.mycompany.ui.customui.IconTextView
android:id="@+id/favoriteButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:padding="@dimen/global_padding"
android:layout_marginRight="@dimen/global_padding"
android:text="@string/icon_star_empty"
android:textColor="@color/black_light"
android:textSize="@dimen/textsize_smaller" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:1)
线条可能实际形成,但你无法看到它,因为它在圆圈后面。如果我是对的,请将其添加到圈android:alpha="20"
进行测试。可以在圆圈后面看到该线。如果可行,下面的解决方案应该有效。
因为你在第一个布局中使用了match_parent。
解决方案可能就是这个
更好的实施将使用此:
| Circle(V1) | TextView with information(V2) |
将V1对齐左侧和顶部(以圆和线为布局的中心)。 将V2对齐V1的右侧。
修改强>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent">
<!-- this is my straight line -->
<ImageView
android:layout_width="3dp"
android:layout_height="match_parent"
android:layout_marginEnd="-65dp"
android:layout_marginLeft="31dp"
android:src="#f6802e" />
你的线的高度与父亲的身高相符,改变
android:layout_height="fill_parent">
到
android:layout_height="match_parent">
编辑#2
<?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" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="#00aaaaaa"
android:paddingLeft="65sp"
android:src="@drawable/ic_launcher" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentTop="true" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="3sp"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:background="#aa00aa"
android:paddingLeft="65sp"
android:src="@drawable/ic_launcher" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="65sp"
android:layout_height="65sp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#aaaaaa"
android:paddingLeft="65sp"
android:layout_marginTop="65sp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
</RelativeLayout>
以上代码运行并为您提供所需的输出,只需替换imageViews(另外第一个RelativeLayout是不必要的,膨胀它们需要内存)。 Here's the screenshot
答案 1 :(得分:1)
试试这个。
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent">
<ImageView
android:layout_width="3dp"
android:layout_height="match_parent"
android:layout_marginEnd="-65dp"
android:layout_marginLeft="31dp"
android:src="#f6802e" />
<ImageView
android:id="@+id/circle"
android:layout_width="65dp"
android:layout_height="match_parent"
android:layout_marginEnd="-65dp"
android:layout_marginRight="-65dp"
android:src="@drawable/circle" />