【发布时间】:2015-03-23 17:32:01
【问题描述】:
我的应用中有一个 RecyclerView。下面是它所在行的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="48dp">
<TextView
android:paddingLeft="-1.5dp"
android:paddingTop="-1.5dp"
android:textColor="#fff"
android:id="@+id/text_with_icon"
android:layout_gravity="center_vertical"
android:layout_width="40dp"
android:layout_height="40dp"
android:text="A"
android:textAlignment="center"
android:textSize="22sp"
android:gravity="center"
android:background="@drawable/circle"
android:layout_marginLeft="18dp"
android:layout_marginStart="18dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:textColor="#000"
android:gravity="center_vertical"
android:textSize="16sp"
android:textStyle="bold"
android:layout_gravity="left|top"
android:id="@+id/list_title"
android:layout_marginLeft="72dp"
android:padding="4dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Dummy text"
android:layout_marginStart="72dp"
android:layout_toRightOf="@+id/text_with_icon" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="14dp"
android:layout_marginLeft="77dp"
android:textStyle="normal"
android:textColor="#000"
android:textSize="12sp"
android:gravity="center_vertical"
android:text="Lorem ipsum dolor sit amet, consectetur..."
android:layout_alignLeft="@+id/list_title"
android:layout_alignStart="@+id/list_title"
android:layout_alignParentBottom="true"
android:layout_gravity="left|bottom"
android:layout_marginBottom="8dp"/>
</FrameLayout>
Android Studio 预览显示如下截图所示:
所以,看起来红圈中的字母很好地居中,这是第一个问题。在模拟器的屏幕截图中,很容易注意到这些圆圈中的所有字母都不在中心。我怎样才能使它们居中?
现在是第二期。在模拟器屏幕截图中,如果您查看列表的第三项(“Something3”),它在粗体文本下方没有描述文本。如果没有描述,是否可以将其垂直居中? 列表中的圆圈是文本视图的背景,是单独的 xml 文件 (circle.xml) 中的形状:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<solid android:color="@color/primary"/>
</shape>
【问题讨论】:
-
使用
LinearLayout然后gravity然后垂直居中,然后捕获文本视图的文本,如果它是空的,你将它设置为可见性消失了。RelativeLayout也将与父中心的中心一起使用..(我指的是右边的文本视图) -
恐怕我没看懂……我先尝试过Linear Layout,但无法实现元素的合适定位。然后我尝试了相对布局,所有元素都变得疯狂并随机定位,我没有成功正常定位它们。框架布局是我唯一可以用来定位元素的布局:(您能用更多的话解释一下您的答案吗?
标签: android xml material-design android-recyclerview