所以我有一个带有图像视图和进度条的FrameLayout。在框架布局下面,我有一个textview。如何正确地将此文本视图置于图像/ framelayout下方。这是它的样子:https://imgur.com/a/NBHjA,这就是我想要的:https://imgur.com/a/d8Vkd
这样,文本居中,但现在加载图像时,进度条不会显示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="?attr/background"
tools:context="com.nmoorthy.malscoretracker.ViewAnimeScores">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:elevation="4dp"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@color/text_color_inverse"
android:maxLines="1"
android:ellipsize="end"
android:id="@+id/toolbar_title" />
</android.support.v7.widget.Toolbar>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/toolbar"
android:layout_marginLeft="16dp"
android:layout_marginTop="24dp"
android:id="@+id/innerrelativelayout"
>
<!--<FrameLayout-->
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progress_bar"
android:layout_centerInParent="true"
android:visibility="visible"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/image"
/>
<!--</FrameLayout>-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/image"
android:text="Status"
android:id="@+id/status"
android:textSize="10sp"
android:textStyle="italic"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Synopsis"
android:id="@+id/synopsis"
android:layout_toRightOf="@+id/innerrelativelayout"
android:layout_alignParentRight="true"
android:layout_below="@+id/toolbar"
android:layout_marginTop="18.9dp"
android:layout_toEndOf="@+id/innerrelativelayout"
android:layout_marginLeft="20dp"
android:layout_marginRight="12dp"
android:maxLines="6"
android:ellipsize="end" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="10.0"
android:id="@+id/highScore"
android:paddingLeft="16dp"
android:paddingTop="13dp"
android:textSize="12sp"
android:fontFamily="sans-serif-condensed"
android:layout_below="@+id/innerrelativelayout"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="0.0"
android:id="@+id/lowScore"
android:paddingLeft="16dp"
android:paddingTop="77dp"
android:textSize="12sp"
android:fontFamily="sans-serif-condensed"
android:layout_below="@+id/innerrelativelayout"/>
<TextView
android:id="@+id/noGraph"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:paddingTop="40dp"
android:visibility="gone"
android:fontFamily="sans-serif-condensed"
android:textStyle="bold"
android:layout_below="@id/innerrelativelayout"
android:text="You need at least 2 scores for a graph"
android:layout_centerHorizontal="true"/>
<com.db.chart.view.LineChartView
android:id="@+id/linechart"
android:layout_width="match_parent"
android:layout_height="100dp"
android:paddingRight="16dp"
android:paddingLeft="5dp"
android:paddingTop="15dp"
android:paddingBottom="15dp"
android:layout_toRightOf="@+id/highScore"
android:layout_below="@+id/innerrelativelayout"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4/8/16"
android:paddingLeft="5dp"
android:textSize="12sp"
android:paddingTop="5dp"
android:layout_toRightOf="@+id/lowScore"
android:layout_below="@id/linechart"
android:id="@+id/firstdate"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/firstdate"
android:layout_below="@id/linechart">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4/13/16"
android:paddingRight="16dp"
android:textSize="12sp"
android:layout_alignParentRight="true"
android:paddingTop="5dp"
android:id="@+id/lastdate"
/>
</RelativeLayout>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler_view"
android:scrollbars="vertical"
android:paddingTop="3dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/firstdate"
/>
</RelativeLayout>
我想在图像视图中将状态置于框架中。我尝试过水平中心和alignparentbottom,但他们都没有工作。
答案 0 :(得分:0)
FrameLayout旨在阻挡屏幕上的某个区域以显示单个项目。 https://developer.android.com/reference/android/widget/FrameLayout.html
并且你在FrameLayout中放置了两个布局。我们将RelativeLayout和alignparentbottom设置为true。
答案 1 :(得分:0)
在 TextView 上使用android:layout_centerHorizontal="true"
和android:layout_alignParentBottom="true"
。
我认为您将重力应用为center_horizontal,它只会将TextView中的内容集中在TextView中 - 如果您在TextView上使用match_parent
,这是一种替代解决方案。
编辑:根据您对其他答案的评论,您似乎正在动态下载图像。因此,在绘制视图时,父宽度是 ProgressBar 的宽度,TextView相应地居中。加载图像时,需要在父RelativeLayout上调用requestLayout()
来测量并重新布置具有新宽度的TextView。
答案 2 :(得分:0)
尝试:
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progress_bar"
android:layout_centerInParent="true"
android:visibility="visible"/>
<ImageView
android:layout_width="match_parent" // Changes here
android:layout_height="wrap_content"
android:id="@+id/image"
/>
<!--</FrameLayout>-->
<TextView
android:layout_width="match_parent" // Changes here
android:layout_gravity="center"
android:gravity="center"
android:layout_below="@+id/image"
android:layout_height="wrap_content"
android:layout_below="@+id/image"
android:text="Status"
android:id="@+id/status"
android:textSize="10sp"
android:textStyle="italic"
android:layout_centerHorizontal="true"/>
在Textview中,layout_below,给出框架布局的id,如果你想让你的视图在它下面