android - 将父线性布局的宽度设置为屏幕的百分比

标签 android android-layout android-dialogfragment android-percent-library

我正在构建一个 android 应用程序并且我有一个对话框 fragment 。对话框 fragment 具有设定的宽度。但是,问题是当应用程序在屏幕尺寸不同的设备上运行时,对话框 fragment 未正确居中。

最初,我拥有的是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="500dp"
  android:layout_height="wrap_content">

  <-- code goes here -->

</RelativeLayout>

如您所见,我有一个具有已定义宽度的 relativeLayout。因为我知道你不能在相对布局中使用 layout_weight,所以我所做的是将父相对布局包装在线性布局中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="0.8"
    android:weightSum="1">

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

    </RelativeLayout>
</LinearLayout>

但是,这不起作用,因为当我在屏幕尺寸较小的设备上运行应用程序时对话框 fragment 被剪切。

如何将对话框 fragment 的宽度设置为屏幕尺寸的百分比?这完全可能吗,还是我必须求助于以编程方式设置它?

最佳答案

这是一个正确的方法,如果你想让 RelativeLayout 有 40% 的屏幕宽度,但是这个技术不能应用于父布局,因为父布局没有父布局,android:layout_weight 不影响

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="100">

<RelativeLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="40">

</RelativeLayout>

Since I know that you can't use layout_weight in a relative layout

我们可以在任何 View 和布局中使用 layout_weight,如果它是 LinearLayout 的直接子级

关于android - 将父线性布局的宽度设置为屏幕的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718069/

相关文章:

android - 处理 DialogFragment 返回行为的最佳方式?

android - 来自 Fragment 的 DialogFrag#show() 抛出 "IllegalStateException: Can not perform this action after onSaveInstanceState"

java - Android ServerSocket 接受权限被拒绝

c# - 将 MP3 从 C# 服务器流式传输到 Android

android - 如何从动态 EditText 中获取值并将值存储在整数数组中?

java - 如何突出显示 Canvas 上的特定矩形

android - Onclick 被多次调用

java - Android:Viewpager 还是 Viewflipper?

android - 自定义支持对话框 fragment 文本颜色错误

android - osmdroid 经典标记重叠的解决方法