【发布时间】:2016-08-26 18:03:20
【问题描述】:
public final class ProgressWidget extends LinearLayout {
<Default Constructors implemented> {
setOrientation(LinearLayout.VERTICAL);
inflate(context, R.layout.horizontal_progress, this);
}
@Override
protected void onFinishInflate() {
//Continue with rest of the logic.
}
}
R.layout.horizontal_progress 有 35 行。
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/progressTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/rounded_white_background"
android:gravity="center"
android:textColor="@color/light_black"
android:textSize="12sp"
android:fontFamily="roboto-regular"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:paddingLeft="2dp"
android:paddingRight="2dp" />
<SeekBar
android:id="@+id/progress"
android:layout_width="match_parent"
android:layout_height="@dimen/horizontal_progress_height"
android:indeterminate="false"
android:progressDrawable="@drawable/horizontal_progress"
android:gravity="center"
android:thumb="@null"
android:progress="0"
android:secondaryProgress="0"
android:max="100"
android:minHeight="@dimen/horizontal_progress_height"
android:paddingTop="1dp"
android:paddingBottom="1dp"
android:paddingLeft="2dp"
android:paddingRight="2dp" />
</merge>
R.drawable.horizontal_progress 有 36 行。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<item android:id="@android:id/background">
<shape android:shape="rectangle" >
<corners android:radius="@dimen/horizontal_progress_radius" />
<gradient
android:startColor="@color/horizontal_progress_background"
android:endColor="@color/horizontal_progress_background"
android:angle="270"/>
</shape>
</item>
<item android:id="@android:id/secondaryProgress">
<clip>
<shape android:shape="rectangle" >
<corners android:radius="@dimen/horizontal_progress_radius" />
<gradient
android:startColor="@android:color/white"
android:endColor="@android:color/white"
android:angle="270"/>
</shape>
</clip>
</item>
<item android:id="@android:id/progress">
<clip>
<shape android:shape="rectangle" >
<corners android:radius="@dimen/horizontal_progress_radius" />
<gradient
android:startColor="?android:attr/colorAccent"
android:endColor="?android:attr/colorAccent"
android:angle="270"
tools:ignore="NewApi"/>
</shape>
</clip>
</item>
</layer-list>
堆栈跟踪的最后一段。
原因:android.view.InflateException: Binary XML file line #39: Error inflating class ProgressWidget 在 android.view.LayoutInflater.createView(LayoutInflater.java:620) 在 android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:696) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:755) 在 android.view.LayoutInflater.rInflate(LayoutInflater.java:758) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:462) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:397) 在 android.view.LayoutInflater.inflate(LayoutInflater.java:353) 在 android.view.View.inflate(View.java:1746
在手机设备上一切正常 - 三星 Galaxy S5 SM-G900A,Android 版本 5.0。在 Asus Nexus 7、Android 4.4.3 上总是因上述堆栈跟踪而崩溃。
此 ProgressWidget 是 Android 库模块的自定义可重用组件,将与项目模块一起使用。主项目模块预计将满足 minSDKVersion 16 到 TargetSDKVersion 24 的要求。
任何关于可能导致仅在平板设备上崩溃的指针将不胜感激。
【问题讨论】:
标签: android tablet seekbar inflate-exception