我尝试使用百分比支持库,详细说明在这里和这里。它在Android Studio设计器中运行得很好,但当我试图将我的应用程序安装到我的手机中时,除了一个空屏幕什么也没有显示。问题是什么呢?
编辑:我在gradle文件中添加了以下几行:
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'com.android.support:support-v4:23.0.0'
compile 'com.android.support:design:23.0.0'
compile 'com.android.support:percent:23.0.0'
这是我的片段布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="org.atpms.fairfare.ReportFragment"
android:id="@+id/fragment_report" >
<ProgressBar android:id="@+id/report_progress" style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content" android:layout_height="match_parent"
android:layout_marginBottom="8dp" android:visibility="gone"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
<RelativeLayout
android:id="@+id/report_form"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/reportButton"
android:gravity="center">
<ImageView
android:id="@+id/report_background"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:src="@drawable/report"
android:adjustViewBounds="true" />
<android.support.percent.PercentRelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignTop="@+id/report_background"
android:layout_alignBottom="@+id/report_background"
android:layout_alignLeft="@+id/report_background"
android:layout_alignStart="@+id/report_background"
android:layout_alignRight="@+id/report_background"
android:layout_alignEnd="@+id/report_background">
<EditText
android:id="@+id/plateNumberField"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_widthPercent="58%"
app:layout_heightPercent="14%"
app:layout_marginTopPercent="20%"
app:layout_marginLeftPercent="36%"
android:textColor="@color/plate_number"
android:background="@null"
android:gravity="center"
android:textSize="24sp"
tools:ignore="TextFields"/>
<ImageView
android:id="@+id/meterPictureButton"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_widthPercent="12%"
app:layout_heightPercent="15.5%"
app:layout_marginTopPercent="38%"
app:layout_marginLeftPercent="84%"
android:src="@drawable/camera" />
<ImageView
android:id="@+id/meterPicture"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_widthPercent="97.2%"
app:layout_heightPercent="42%"
app:layout_marginTopPercent="55.8%"
app:layout_marginLeftPercent="1.6%"
android:scaleType="fitXY"
tools:ignore="ContentDescription" />
</android.support.percent.PercentRelativeLayout>
</RelativeLayout>
<Button
android:id="@+id/reportButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/report"
android:layout_alignParentBottom="true"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/report_button"
android:textSize="20sp"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:textColor="@color/button_text"
android:textAllCaps="false"
android:gravity="center"
tools:ignore="UnusedAttribute" />
</RelativeLayout>
</RelativeLayout>
更新:
好吧,我已经膨胀了完全相同的布局从Activity
使用setContentView
,它工作得很好。似乎只有当我尝试在Fragment
布局中使用PercentRelativeLayout
时才会出现问题。似乎LayoutInflater
没有正确地膨胀PercentRelativeLayout
元素的布局,但我仍然不确定,并继续调查。
这不是一个很好的解决方案,但我解决了这个问题,只是摆脱了片段,并使其成为一个成熟的活动。