رفتن به مطلب
  • 0

نشناختن FrameLayout در گوشی


Salar82

سوال

سلام

برنامه ای که نوشتم، بخوبی و بدون هیچگونه مشکلی رو شبیه ساز اندروید 7 اجرا میشه. اما وقتی رو گوشی (بازم اندروید 7 هم حالت release و هم دیباگ) اجرا میکنم، از inflater مربوط به لایوت زیر که Framelayout هست ایراد میگیره: ( متن ارور هم خط 14 رو نشون میده)

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iv_auto_image_slider"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY" />

    <FrameLayout -------------------------------------------------------> line 14 error
        android:id="@+id/fl_shadow_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@drawable/bg_overlay">

        <TextView
            android:id="@+id/tv_auto_image_slider"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="25dp"
            android:padding="6dp"
            android:textColor="#FFF"
            android:textSize="15sp" />

    </FrameLayout>

</FrameLayout>

 

اینم از ارور بی معنیش :) :

android.view.InflateException: Binary XML file line #14: Binary XML file line #14: Error inflating class <unknown>

خطی که ایراد میگیره:

	@Override
	Laypublic SliderAdapterVH onCreateViewHolder(ViewGroup parent) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item, null); ------> error

        return new SliderAdapterVH(view);
    }

 

و در نهایت ارور کامل:

 android.view.InflateException: Binary XML file line #14: Binary XML file line #14: Error inflating class <unknown>
        at android.view.LayoutInflater.inflate(LayoutInflater.java:558)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:434)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
        at ir.vegetable.ash.ImageSlider.SliderAdapter.onCreateViewHolder(SliderAdapter.java:44)
        at ir.vegetable.ash.ImageSlider.SliderAdapter.onCreateViewHolder(SliderAdapter.java:17)
        at com.smarteist.autoimageslider.SliderViewAdapter.instantiateItem(SliderViewAdapter.java:33)
        at com.smarteist.autoimageslider.InfiniteAdapter.InfinitePagerAdapter.instantiateItem(InfinitePagerAdapter.java:77)
        at com.smarteist.autoimageslider.SliderPager.addNewItem(SliderPager.java:998)
        at com.smarteist.autoimageslider.SliderPager.populate(SliderPager.java:1146)
        at com.smarteist.autoimageslider.SliderPager.populate(SliderPager.java:1080)
        at com.smarteist.autoimageslider.SliderPager.onMeasure(SliderPager.java:1629)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at androidx.cardview.widget.CardView.onMeasure(CardView.java:260)
        at android.view.View.measure(View.java:18930)
        at androidx.constraintlayout.widget.ConstraintLayout.internalMeasureChildren(ConstraintLayout.java:1227)
        at androidx.constraintlayout.widget.ConstraintLayout.onMeasure(ConstraintLayout.java:1572)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1486)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:765)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:647)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1486)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:765)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:647)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5976)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
        at com.android.internal.policy.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2705)
        at android.view.View.measure(View.java:18930)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2153)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1247)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1483)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1138)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6227)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:884)
        at android.view.Choreographer.doCallbacks(Choreographer.java:696)
        at android.view.Choreographer.doFrame(Choreographer.java:631)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:870)
        at android.os.Handler.handleCallback(Handler.java:743)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:150)
        at android.app.ActivityThread.main(ActivityThread.java:5546)
    	at java

 

واقعا مشکلش رو نمیتونم درک کنم.

پیشاپیش از راهنمایی همگی متشکرم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

8 پاسخ به این سوال تاکنون داده شده است

ارسال های توصیه شده

در 18 دقیقه قبل، Salar82 گفته است :

ممنون ولی بازم نشد.

 

فک کنم یه چیزی پیدا کردم؛ نویسنده کتابخونه، برای اینکه به اسلایدر، سایه بده، یه ریسورس به اسم bg_overlay.xml رو تو پوشه drawable-v24 گذاشته:

 

اما این فایل، تو پوشه drawable نیست و وقتی با شبیه ساز که Api 25 هست، مشکلی نداره؛ اما وقتی با گوشی Api 23 بازش میکنم، ارور میده که فک کنم مشکلش از این باشه.

درسته؟

در صورتی که از این ریسورس استفاده بشه و نسخه api چک نشه بله قطعا به خطا میخوره.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 ساعت قبل، Salar82 گفته است :

<FrameLayout -------------------------------------------------------> line 14 error android:id="@+id/fl_shadow_container" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:background="@drawable/bg_overlay">

اینو خودتون کامنت کردین یا اینجا اینجوریه؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 ساعت قبل، محمدرضا شاهپیری گفته است :

اینو خودتون کامنت کردین یا اینجا اینجوریه؟

نه، اینجا اینطوریه.

 

نمیدونم چرا رو گوشی نصب نمیشه. سورس آداپتر و لایوت  مال اینه:

https://github.com/smarteist/Android-Image-Slider

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 9 ساعت قبل، Salar82 گفته است :

نه، اینجا اینطوریه.

 

نمیدونم چرا رو گوشی نصب نمیشه. سورس آداپتر و لایوت  مال اینه:

https://github.com/smarteist/Android-Image-Slider

اول اینکه کدهاتونو بدون هیچ چیز اضافه ای بزارید. الان اومدین و کامنت گذاشتین معلوم نیست اشتباه از کجاس.خط زیر رو هم تغییر بدین 

 View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item, null);

به 

View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item,parrent, null);

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 3 ساعت قبل، محمدرضا شاهپیری گفته است :

کدهاتونو بدون هیچ چیز اضافه ای بزارید

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/iv_auto_image_slider"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY" />

    <FrameLayout
        android:id="@+id/fl_shadow_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="@drawable/bg_overlay">

        <TextView
            android:id="@+id/tv_auto_image_slider"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="25dp"
            android:padding="6dp"
            android:textColor="#FFF"
            android:textSize="15sp" />

    </FrameLayout>

</FrameLayout>

 

آداپتر:

	@Override
    public SliderAdapterVH onCreateViewHolder(ViewGroup parent) {
        LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
        View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item,parent);

        return new SliderAdapterVH(view);
    }

 

در 3 ساعت قبل، محمدرضا شاهپیری گفته است :

به 


View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item,parrent, null);

از این خط هم ارور گرفت و null رو حذف کردم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 4 دقیقه قبل، Salar82 گفته است :

 

آداپتر:

 

از این خط هم ارور گرفت و null رو حذف کردم

ببخشید من حواسم نبود. به شکل زیر بنویسید

View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item,parrent, false);

البته توی لیوت من مشکلی نمیبینم. برای اطمینان از سالم بودن لیوت یه اکتیویتی ایجا کنید و این لیوت رو بهش بدید با دستور setcontentview ببینید اکتیوتی اجرا میشه یا نه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 2 دقیقه قبل، محمدرضا شاهپیری گفته است :

ببخشید من حواسم نبود. به شکل زیر بنویسید


View view = layoutInflater.inflate(R.layout.main_image_slider_layout_item,parrent, false);

ممنون ولی بازم نشد.

 

فک کنم یه چیزی پیدا کردم؛ نویسنده کتابخونه، برای اینکه به اسلایدر، سایه بده، یه ریسورس به اسم bg_overlay.xml رو تو پوشه drawable-v24 گذاشته:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:angle="90"
        android:endColor="@android:color/transparent"
        android:startColor="#000000" />
</shape>

 

اما این فایل، تو پوشه drawable نیست و وقتی با شبیه ساز که Api 25 هست، مشکلی نداره؛ اما وقتی با گوشی Api 23 بازش میکنم، ارور میده که فک کنم مشکلش از این باشه.

درسته؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خیلی ممنون حل شد.

ریسورس رو مستقیم گذاشتمش تو drawable و درست شد.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...