- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
真的很烦恼。
当我在任何隔离 Activity 或 fragment 中使用 TintImageView 或 FloatingActionButton 时,它们一切顺利。
但是当我在 RecyclerView 中使用它们时,出现了这个异常:android.view.InflateException:
android.view.InflateException: Binary XML file line #79: Error inflating class "unknown"
完整版如下:
5882-5882/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.*********, PID: 5882
android.view.InflateException: Binary XML file line #79: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:640)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:775)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:778)
at android.view.LayoutInflater.inflate(LayoutInflater.java:512)
at android.view.LayoutInflater.inflate(LayoutInflater.java:409)
at com.*********.ui.adapters.CreditList_MineAdapter.onCreateViewHolder(CreditList_MineAdapter.java:33)
at com.*********.ui.adapters.CreditList_MineAdapter.onCreateViewHolder(CreditList_MineAdapter.java:23)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5288)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4551)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4461)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1962)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1371)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1334)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:563)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2847)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3145)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:581)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1697)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1551)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1460)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:1043)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1697)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1551)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1460)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14878)
at android.view.ViewGroup.layout(ViewGroup.java:4655)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1697)
at android.widget.LinearLayout.layoutVertical
好的,我会发布我的源代码。
这是我的gradle:
android {
compileSdkVersion 23
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.*******"
minSdkVersion 14
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:cardview-v7:23.0.1'
compile 'com.android.support:recyclerview-v7:23.0.1'
compile 'com.android.support:palette-v7:23.0.1'
compile 'com.android.support:design:23.0.1'
...
}
和 RecyclerView 项目布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
android:id = "@+id/card_root"
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:card = "http://schemas.android.com/apk/res-auto"
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:background = "?android:attr/selectableItemBackground"
card:cardBackgroundColor = "#F1CC9D"
card:cardCornerRadius = "0dp"
card:cardElevation = "4dp"
card:cardPreventCornerOverlap = "true"
card:cardUseCompatPadding = "true"
card:contentPadding = "4dp">
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "wrap_content"
android:orientation = "vertical"
android:weightSum = "100">
<FrameLayout
android:layout_width = "match_parent"
android:layout_height = "32dp">
<TextView
android:id = "@+id/text_name"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:layout_gravity = "left|center_vertical"
android:gravity = "center_vertical"
android:maxLines = "2"
android:paddingLeft = "8dp"
android:paddingRight = "8dp"
android:singleLine = "true"
android:text = "****\n****"
android:textColor = "@color/primary_dark_material_dark"
android:textSize = "16sp"
android:textStyle = "bold"/>
</FrameLayout>
<View
android:layout_width = "match_parent"
android:layout_height = "1dp"
android:layout_gravity = "bottom"
android:layout_marginLeft = "8dp"
android:layout_marginRight = "8dp"
android:background = "#7B030B"/>
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "32dp"
android:orientation = "horizontal"
android:weightSum = "2">
<RelativeLayout
android:layout_width = "0dp"
android:layout_height = "32dp"
android:layout_weight = "1">
<android.support.v7.widget.CardView
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_margin = "4dp"
android:layout_weight = "128"
card:cardBackgroundColor = "@android:color/transparent"
card:cardElevation = "-2dp">
<android.support.v7.internal.widget.TintImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:src = "@mipmap/ic_today_black_48dp"
android:tint = "?attr/colorPrimaryDark"/>
</android.support.v7.widget.CardView>
<TextView
android:id = "@+id/text_deadline"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_alignParentRight = "true"
android:layout_centerVertical = "true"
android:gravity = "right|center_vertical"
android:paddingLeft = "8dp"
android:paddingRight = "8dp"
android:text = "2015-01-01"
android:textColor = "@color/primary_dark_material_dark"
android:textSize = "16sp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width = "0dp"
android:layout_height = "32dp"
android:layout_weight = "1">
<android.support.v7.widget.CardView
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_margin = "4dp"
android:layout_weight = "128"
card:cardBackgroundColor = "@android:color/transparent"
card:cardElevation = "-2dp">
<android.support.v7.internal.widget.TintImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:src = "@mipmap/ic_credit_card_black_48dp"
android:tint = "?attr/colorPrimaryDark"/>
</android.support.v7.widget.CardView>
<TextView
android:id = "@+id/text_credit"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_alignParentRight = "true"
android:layout_centerVertical = "true"
android:gravity = "right|center_vertical"
android:paddingLeft = "8dp"
android:paddingRight = "8dp"
android:text = "0987654321"
android:textColor = "#7B020B"
android:textSize = "16sp"/>
</RelativeLayout>
</LinearLayout>
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "32dp"
android:orientation = "horizontal"
android:weightSum = "2">
<RelativeLayout
android:layout_width = "0dp"
android:layout_height = "32dp"
android:layout_weight = "1">
<android.support.v7.widget.CardView
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_margin = "4dp"
android:layout_weight = "128"
card:cardBackgroundColor = "@android:color/transparent"
card:cardElevation = "-2dp">
<android.support.v7.internal.widget.TintImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:src = "@mipmap/ic_assignment_ind_white_48dp"
android:tint = "?attr/colorPrimaryDark"/>
</android.support.v7.widget.CardView>
<TextView
android:id = "@+id/text_postedby"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_alignParentRight = "true"
android:layout_centerVertical = "true"
android:gravity = "right|center_vertical"
android:paddingLeft = "8dp"
android:paddingRight = "8dp"
android:text = "null"
android:textColor = "@color/primary_dark_material_dark"
android:textSize = "16sp"/>
</RelativeLayout>
<RelativeLayout
android:layout_width = "0dp"
android:layout_height = "32dp"
android:layout_weight = "1">
<android.support.v7.widget.CardView
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_margin = "4dp"
android:layout_weight = "128"
card:cardBackgroundColor = "@android:color/transparent"
card:cardElevation = "-2dp">
<android.support.v7.internal.widget.TintImageView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_gravity = "center"
android:src = "@mipmap/ic_local_grocery_store_white_48dp"
android:tint = "?attr/colorPrimaryDark"/>
</android.support.v7.widget.CardView>
<TextView
android:id = "@+id/text_usedby"
android:layout_width = "wrap_content"
android:layout_height = "match_parent"
android:layout_alignParentRight = "true"
android:layout_centerVertical = "true"
android:gravity = "right|center_vertical"
android:paddingLeft = "8dp"
android:paddingRight = "8dp"
android:text = "null"
android:textColor = "@color/primary_dark_material_dark"
android:textSize = "16sp"/>
</RelativeLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:id = "@+id/image"
android:layout_width = "100dp"
android:layout_height = "100dp"
android:layout_gravity = "right|top"
android:layout_margin = "8dp"
android:src = "@mipmap/ic_seal_used"
android:visibility = "gone"/>
</android.support.v7.widget.CardView>
RecyclerView Adapter 是这样的:
public class CreditList_MineAdapter
extends BaseRecyclerAdapter< CreditList_MineAdapter.CreditViewHolder, Credit > {
public CreditList_MineAdapter ( Context context, ArrayList< Credit > list ) {
super( context, list );
}
@Override
public CreditViewHolder onCreateViewHolder ( ViewGroup parent, int viewType ) {
CreditViewHolder holder = new CreditViewHolder(
LayoutInflater.from( mContext )
.inflate( R.layout.listitem_credit_list_mine, parent, false )
);
return holder;
}
@Override
protected void onBindViewHolderBase ( CreditViewHolder holder, int position ) {
final Credit mCreditAtPosition = mList.get( position );
holder.mTextView_Name.setText( mCreditAtPosition.getName() );
holder.mTextView_Credit.setText( mCreditAtPosition.getCredit() );
try {
holder.mTextView_End.setText(
mCreditAtPosition.getDeadLineDate() == null ? "" : Credit.YYYY_MM_DD.format(
Credit.YYYY_MM_DD.parse( mCreditAtPosition.getDeadLineDate().getDate() )
)
);
}
catch ( ParseException e ) {
e.printStackTrace();
}
holder.mTextView_PostBy.setText(
mCreditAtPosition.getPostedBy() == null ? "" :
TextUtils.isEmpty( mCreditAtPosition.getPostedBy().getUsername() ) ?
mCreditAtPosition.getPostedByName() :
mCreditAtPosition.getPostedBy().getUsername()
);
holder.mTextView_UsedBy.setText(
mCreditAtPosition.getUsedBy() == null ? "" :
TextUtils.isEmpty( mCreditAtPosition.getUsedBy().getUsername() ) ?
mCreditAtPosition.getUsedByName() :
mCreditAtPosition.getUsedBy().getUsername()
);
if ( mCreditAtPosition.isUsed() ) {
holder.mCardView.setCardBackgroundColor( R.color.material_design_colors_grey_500 );
holder.mImageView.setVisibility( View.VISIBLE );
holder.mImageView.setImageResource( R.mipmap.ic_seal_used );
return;
}
if ( mCreditAtPosition.isOutOfDate() ) {
holder.mCardView.setCardBackgroundColor( R.color.material_design_colors_grey_600 );
holder.mImageView.setVisibility( View.VISIBLE );
holder.mImageView.setImageResource( R.mipmap.ic_seal_outofdate );
return;
}
holder.mCardView.setCardBackgroundColor( Color.parseColor( "#F1CC9D" ) );
holder.mImageView.setVisibility( View.GONE );
}
class CreditViewHolder extends RecyclerView.ViewHolder {
@InjectView ( R.id.text_name )
TextView mTextView_Name;
@InjectView ( R.id.text_credit )
TextView mTextView_Credit;
@InjectView ( R.id.text_deadline )
TextView mTextView_End;
@InjectView ( R.id.text_postedby )
TextView mTextView_PostBy;
@InjectView ( R.id.text_usedby )
TextView mTextView_UsedBy;
@InjectView ( R.id.card_root )
CardView mCardView;
@InjectView ( R.id.image )
ImageView mImageView;
public CreditViewHolder ( View view ) {
super( view );
ButterKnife.inject( this, view );
}
}
}
错误日志指向这一行:
CreditViewHolder holder = new CreditViewHolder( LayoutInflater.from( mContext ) .inflate( R.layout.listitem_credit_list_mine, parent, false ) );
我在 SOF 上尝试过一些类似的问题,但没有一个能像这样解决我的问题。所以我希望有人能给我提示?非常感谢!
抱歉我的英语不好!
抱歉,我忘了说我的设备操作系统是 Android 4.4.2 API19。
编辑:
另外,fragment中的代码
mList = new ArrayList< Credit >();
switch (mPosition) {
case POSITION_0_FRESH:
mAdapter =
new CreditList_FreshAdapter( getActivity().getApplicationContext(), mList );
mAdapter.setRecyclerViewOnItemClickLitener( this );
break;
case POSITION_1_USED:
case POSITION_2_USEDBYME:
mAdapter =
new CreditList_UsedAdapter( getActivity().getApplicationContext(), mList );
break;
case POSITION_3_POSTBYME:
mAdapter =
new CreditList_MineAdapter( getActivity().getApplicationContext(), mList );
break;
case POSITION_4_OUTOFDATE:
mAdapter = new CreditList_OutofDateAdapter(
getActivity().getApplicationContext(), mList
);
break;
default:
mAdapter =
new CreditList_FreshAdapter( getActivity().getApplicationContext(), mList );
break;
}
mRecyclerView.setAdapter( mAdapter );
mRecyclerView.setLayoutManager( new LinearLayoutManager( getActivity() ) );
BaseRecyclerAdapter 是这样的:
public abstract class BaseRecyclerAdapter < VH extends RecyclerView.ViewHolder, T >
extends RecyclerView.Adapter< VH > {
protected Context mContext;
protected List< T > mList;
protected RecyclerViewOnItemClickLitener mRecyclerViewOnItemClickLitener;
public BaseRecyclerAdapter ( Context inContext, List< T > inList ) {
this.mContext = inContext;
this.mList = inList;
}
public T getItemAtPosition ( int inPosition ) {
if ( mList != null ) {
return mList.get( inPosition );
}
return null;
}
public void setRecyclerViewOnItemClickLitener (
RecyclerViewOnItemClickLitener mRecyclerViewOnItemClickLitener
) {
this.mRecyclerViewOnItemClickLitener = mRecyclerViewOnItemClickLitener;
}
@Override
public void onBindViewHolder ( final VH holder, int position ) {
onBindViewHolderBase( holder, position );
if ( mRecyclerViewOnItemClickLitener != null ) {
holder.itemView.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick ( View v ) {
if ( mRecyclerViewOnItemClickLitener != null )
mRecyclerViewOnItemClickLitener.onItemClick(
holder.itemView, holder.getLayoutPosition()
);
}
}
);
holder.itemView.setOnLongClickListener(
new View.OnLongClickListener() {
@Override
public boolean onLongClick ( View v ) {
if ( mRecyclerViewOnItemClickLitener != null )
mRecyclerViewOnItemClickLitener.onItemLongClick(
holder.itemView, holder.getLayoutPosition()
);
return false;
}
}
);
}
}
protected abstract void onBindViewHolderBase ( VH holder, int position );
@Override
public int getItemCount () {
return mList == null ? 0 : mList.size();
}
最佳答案
android:background="?attr/selectableItemBackground"
引起了几个膨胀问题,如果没有必要,只需将其删除并重试或者一起尝试
android:clickable="true"
android:focusable="true"
android:background="?android:attr/selectableItemBackground"
关于安卓.view.InflateException : Binary XML file line ###: Error inflating class <unknown> in RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32757856/
您好,所以在我们的项目中,我们使用的是书法库,它没有任何问题,但现在在我添加的一项 Activity 中,它不断崩溃并出现以下堆栈跟踪: 01-23 02:25:32.178 3654-3654/?
I published my application to the Play Store as open beta. I don't get any error when I run it wi
我因为工作室提示 Dialog 而苦苦挣扎已弃用, 所以我又去阅读文档,似乎 Toast也被弃用了。 所以我尝试从 Toast 迁移至Snackbar ,但目前失败...我 我加了 implement
每当我更改屏幕方向时,我的应用程序都会崩溃并出现以下异常。我相信这与 ImageViews 导致模拟器内存不足有关,但我无法理解堆栈跟踪。 在 ProfileActivity.java(我想允许改
InflateException 在使用 glide 加载大量图像时发生。 我做了一些研究并意识到 InflateException 可能不是我的 android 应用程序崩溃的真正原因,真正的问题应
我有更多的 Activity ,我没有任何问题,但是当我开始这个 Activity (Segunda)时它坏了在此 Activity 中,我尝试使用 customView 进行缩放和绘制,但我找不到问
我正在尝试创建一个自定义 View - 手指绘画,但我遇到了这个错误,我不知道如何修复它。谁能告诉我哪里出了问题? 日志: 08-04 08:34:01.171: E/AndroidRuntime(1
我的应用程序出现此错误 Error inflating class android.support.design.widget.FloatingActionButton 我在互联网上搜索错误,我尝试了
我有 recyclerview 项目,我正在尝试编辑它们的外观。我尝试向 recyclerview 的每个项目添加一个 float 操作按钮,但它引发了此错误: android.view.Inflat
我正在尝试与我的 fragment 进行通信,但代码与我不一致并给了我错误 E/AndroidRuntime: FATAL EXCEPTION: main Process
我对应用程序开发仍然很陌生,所以我正在努力创建一个跨越 5 页(我猜是 fragment )的基本音板。在 Android Studio 中创建项目时,我从默认的“选项卡式 Activity ”选项为
我已经做了一些尝试来修复这个错误。由于我不明白,所以我没有其他解决方法。 这是我的 XML -->
所以,我在 android.view.InflateException 方面遇到了很多麻烦,我不完全确定为什么。当我尝试加载 Google map fragment 时会发生这种情况。 对于此错误的任
我遇到了一个错误的痛苦。我有一个 SherlockFragmentActivity 和至少两个 SherlockFragment。两者都使用 onCreateView 来扩充 xml 文件。然而,Lo
启动具有 fragment 的 Activity 时,我不断收到该错误。 这是我的代码的概述: 主页 Activity 从启动 屏幕 Activity 开始 home.xml(每个 fragment
我使用 RingtonePreference 并希望使用默认通知声音作为默认首选项值。为此,我遵循了以下建议:RingtonePreference Default value 可悲的是,实际上我得到了
我的 xml 文件的第 59 行: 错误发生是因为 ?attr/属性。如果我将它替换为#FF00000 或其他内容,一切正常。这种崩溃并不经常发生。 07-28 19:16:46.686
我正在尝试设置一个虚拟测试以开始我的 android 项目。但是我无法让我的应用程序与 Espresso 一起运行。未经测试,该应用程序运行良好。 这是回溯: Running tests Test r
我在实现Jake Wharton's ViewPagerIndicator的时候发现了一些问题.这些是 Logcat 上的内容: 06-19 15:32:02.661: E/AndroidRuntim
我刚刚通过这个 setup 设置了 Robolectric 测试当我测试我的应用程序时,它给我一个错误。 我已将问题缩小到我的自定义 ActionBar 布局 中的 ProgressSpinner。当
我是一名优秀的程序员,十分优秀!