【问题标题】:RelativeLayout doesn't wrap_content on width on Android 6在 Android 6 上,RelativeLayout 不会在宽度上 wrap_content
【发布时间】:2016-10-17 13:44:42
【问题描述】:

我有 2 台设备:Asus Zenfone 2 (6.0.1) 和 Galaxy Note 3 (5.0) 在我的应用程序中,我拍照并在下一个屏幕上将其显示在 ImageView 上并在其上添加一些信息。这是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:keepScreenOn="true"
    android:background="@android:color/black">

    <LinearLayout
        android:id="@+id/preview_buttons"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:visibility="visible"
        android:background="@android:color/black">
        <TextView
            android:id="@+id/tv_cancel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:textColor="@android:color/white"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:textSize="16sp"
            android:text="CANCEL"/>
        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:background="@android:color/darker_gray"/>
        <TextView
            android:id="@+id/tv_accept"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center"
            android:textColor="@android:color/white"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:textSize="16sp"
            android:text="ACCEPT"/>
    </LinearLayout>

    <RelativeLayout
        android:id="@+id/preview_container"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:background="@android:color/holo_blue_bright"
        android:layout_above="@id/preview_buttons">
        <ImageView
            android:id="@+id/image_preview"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            />
        <TextView
            android:id="@+id/preview_top_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingRight="16dp"
            android:paddingTop="8dp"
            android:paddingBottom="8dp"
            android:layout_alignRight="@id/image_preview"
            android:layout_alignTop="@id/image_preview"
            android:gravity="right"
            android:background="@drawable/top_text_background"
            android:textSize="16sp"
            android:textColor="@android:color/white"/>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginBottom="8dp"
            android:layout_alignLeft="@id/image_preview"
            android:layout_alignBottom="@id/image_preview"
            android:src="@drawable/ic_verified_grey600"/>

        <TextView
            android:id="@+id/preview_bottom_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingRight="16dp"
            android:paddingBottom="8dp"
            android:paddingTop="8dp"
            android:layout_alignRight="@id/image_preview"
            android:layout_alignBottom="@id/image_preview"
            android:gravity="right"
            android:background="@drawable/bottom_text_background"
            android:textSize="16sp"
            android:textColor="@android:color/white"/>
    </RelativeLayout>

</RelativeLayout>

UPD。我对RelativeLayout“preview_container”有问题

如果 ImageView 的宽度没有填满整个屏幕并且位于屏幕中心,我希望从这个布局中它的宽度会换行。它在 GN3 上运行良好,但在我的 AZ2 上,我在右侧获得了空间(没有插入图像的声誉,它在这里 http://i.imgur.com/cSujbAp.png

UPD2。我所期望的:RelativeLayout 包装正确,所以我看不到背景。来自我的 GN3 的示例 (http://i.imgur.com/vKGQq8r.jpg)。透明背景也无济于事,因为在那之后我需要获取此布局的绘图缓存并使用它

我知道 alignParent 问题,但我现在不使用它,而且我的额外视图放置正确。 请帮帮我,怎么了?

【问题讨论】:

  • 为了更清楚你的问题,你能把预期的图像和你得到的图像都放上去吗
  • @MansiSalvi 更新了,看看 UPD2

标签: android android-layout android-relativelayout


【解决方案1】:
<ImageView
            android:id="@+id/image_preview"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="fitCenter"
            />

android:layout_height="match_parent" 不应为 ma​​tch_parent

【讨论】:

  • 这没有帮助:(
【解决方案2】:

您的preview_top_text 的宽度设置为match_parent,因此这意味着,由于她的容器与图像相同,因此它将拉伸方式以包含文本视图,而不仅仅是imageview

android:layout_centerHorizontal="true" 参数添加到imageview,它应该居中。

希望对你有帮助

更新点 2

两种可能:

  • TextViews 的大小更改为wrap_content
  • 将第二个relativelayout的背景改为transparent

【讨论】:

  • android:layout_centerHorizo​​ntal="true"
  • @TeazMalker 我不明白这是个问题
  • 哎呀!我想要答案,它有助于居中,谢谢,但现在我左右都有边界。 preview_top_text 的更改没有帮助
  • @TeazMalker 那部分不在问题中,那是你的目标吗?您不想看到 relativelayout 内容,而只想看到下面的部分?您可以将背景设置为透明:)
  • 更新了,看UPD2
猜你喜欢
  • 1970-01-01
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-30
相关资源
最近更新 更多