如何为手机和平板电脑设置不同的百分比

How to set different percentages for Mobile & Tablets

我目前正在使用 android.support.percent API

我的示例代码

<android.support.percent.PercentRelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
 <TextView
     android:text="Completed"
     app:layout_widthPercent="40%"
     app:layout_heightPercent="40%"
     app:layout_marginTopPercent="15%"
     app:layout_marginLeftPercent="15%"/>
</android.support.percent.PercentRelativeLayout/>

我的问题:

百分比相对布局在平板电脑中正确适合...但某些视图在移动设备中显示得非常小phone。

所以我只想增加 phone 的百分比..而不是平板电脑。

我的问题:

如何使用百分比相对布局为 phone 平板电脑设置不同的百分比。(如不同的尺寸)

app:layout_heightPercent="40%" // 适合平板电脑 但是我想 phone..

增加到 50%

你应该在这里看看我的回答

平板电脑尺寸较大,因此请使用带有限定符 "Large" 或 "X Large" 的当前布局,并为移动设备创建另一个没有限定符或 "Normal" 限定符的布局,您可以在其中更改视图的大小。

您可以使用最小宽度尺寸

<android.support.percent.PercentRelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
 <TextView
     android:text="Completed"
     app:layout_widthPercent="@fraction/width"
     app:layout_heightPercent="@fraction/height"
     app:layout_marginTopPercent="@fraction/margin_top"
     app:layout_marginLeftPercent="@fraction/margin_left"/>
</android.support.percent.PercentRelativeLayout/>

尺寸:

dimens.xml

<fraction name="width">40%</fraction>
    <fraction name="height">40%</fraction>
    <fraction name="margin_top">15%</fraction>
    <fraction name="margin_left">15%</fraction>

和dimens.xml (sw 600dp)

<fraction name="width">40%</fraction>
    <fraction name="height">50%</fraction>
    <fraction name="margin_top">15%</fraction>
    <fraction name="margin_left">15%</fraction>

您可以查看设计屏幕的更多详细信息here

您可以针对不同的屏幕使用不同的布局文件夹作为解决方法。对于 phone layout 文件夹和平板电脑 layout-large.

screen.xml 用于 布局 文件夹

<android.support.percent.PercentRelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
 <TextView
     android:text="Completed"
     app:layout_widthPercent="40%"
     app:layout_heightPercent="40%"
     app:layout_marginTopPercent="15%"
     app:layout_marginLeftPercent="15%"/>
</android.support.percent.PercentRelativeLayout/>

screen.xml for layout-large folder

<android.support.percent.PercentRelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:app="http://schemas.android.com/apk/res-auto"
     android:layout_width="match_parent"
     android:layout_height="match_parent"/>
 <TextView
     android:text="Completed"
     app:layout_widthPercent="80%"
     app:layout_heightPercent="80%"
     app:layout_marginTopPercent="30%"
     app:layout_marginLeftPercent="30%"/>
</android.support.percent.PercentRelativeLayout/>