অ্যান্ড্রয়েড 5.0 এ অ্যাপকোম্প্যাট কার্ডভিউতে এক্সএমএলে উচ্চতা সেট করা


95

আমি যা বুঝতে পারি তা থেকে, পূর্বরূপের প্রথম দিকে CardViewজাভাতে কোনও হ্যাক ছাড়াই কেবল এক্সএমএলে উচ্চতা নির্ধারণের উপায় নেই বলে মনে হয়েছিল । এখন যে অফিশিয়াল রিলিজটি শেষ হয়েছে, এক্সিএমএলে এটি করার কোনও উপায় কী উচ্চতা নির্ধারণের জন্য জাভা কোড না লিখে?

আমি card_view:cardElevationকোন ফল দেওয়ার চেষ্টা করেছি । আমি ভেবেছিলাম যখন আমি অনুকরণকারীগুলি 5.0 এর জন্য ব্যবহার করছিলাম তখন সবকিছু ঠিক ছিল। তবে এখন যেহেতু আমি আমার আসল ডিভাইসে অফিসিয়াল সংস্করণটি ব্যবহার করছি আমার সমস্ত CardViewঅদৃশ্য হয়ে গেছে

প্রাক ললিপপ, এটি দুর্দান্ত কাজ করে।

এখানে আমার সম্পূর্ণ এক্সএমএল

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:id="@+id/cv1"
    card_view:cardElevation="4dp"
    android:layout_margin="6dp"
    card_view:cardCornerRadius="3dp"
    android:layout_height="match_parent">

আমি সমস্যার পিছনে পেয়েছি তবে এখনও তার উত্তর নেই। যখন আমি ললিপপে আপগ্রেড করেছি, কোনওভাবে মার্জিন বা প্যাডিং অদৃশ্য হয়ে গেছে যাতে তারা কোণার বা কার্ডের প্রান্তগুলি দেখতে পায় না তাই এটি সম্পূর্ণ সমতল।
দ্য লেটটিসমাস্টার

উত্তর:


317

এটি মার্জিন / প্যাডিং সমস্যার মতো দেখায়, কার্ড ইউজকম্প্যাটপ্যাডিং বৈশিষ্ট্যটিকে সত্য হিসাবে সেট করার চেষ্টা করুন । যেমন:

<android.support.v7.widget.CardView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="6dp"
    card_view:cardUseCompatPadding="true"
    card_view:cardElevation="4dp"
    card_view:cardCornerRadius="3dp">

অ্যান্ড্রয়েড ডক থেকে ব্যাখ্যা:

কার্ডভিউ এল এর আগে প্ল্যাটফর্মগুলিতে ছায়া আঁকার জন্য অতিরিক্ত প্যাডিং যুক্ত করে।

এটি কার্ডগুলির এল এবং এল এর আগে বিভিন্ন আকারের হতে পারে you আপনি যদি অন্যান্য ভিউয়ের সাথে কার্ডভিউটি সারিবদ্ধ করতে চান তবে পরিবর্তনের জন্য অ্যাকাউন্টিং করতে আপনার এপিআই সংস্করণ নির্দিষ্ট মাত্রা সংস্থান প্রয়োজন হতে পারে। বিকল্প হিসাবে, আপনি কার্ড ইউজ কমপ্যাটপ্যাডিং পতাকাটি সত্যে সেট করতে পারেন এবং কার্ডভিউ প্ল্যাটফর্ম এল এবং তার পরে একই প্যাডিং মান যুক্ত করবে।

যেহেতু কার্ডের ইউজ কমপ্যাটপ্যাডিং পতাকাটিকে সত্যে সেট করা ইউআইতে অপ্রয়োজনীয় ফাঁক যোগ করে, তাই ডিফল্ট মানটি মিথ্যা।


4
কার্ড_ভিউ: কার্ড ইউসক্যাম্প্যাটপ্যাডিং = "সত্য" কাজ করার জন্য উচ্চতা পেয়েছে তবে একগুচ্ছ প্যাডিংও যুক্ত করেছে ....
টেইলর

4
কার্ডের উন্নতির মান কী?
অ্যান্ড্রয়েড বিকাশকারী

13

আপনার যদি এই লাইন থাকে

android:hardwareAccelerated="false"

ম্যানিফেস্ট অ্যাপ্লিকেশন ট্যাগে আপনার ছায়াগুলি প্রদর্শিত হয়নি। এই লাইন অপসারণ করার চেষ্টা করুন

বা ব্যবহার

android:hardwareAccelerated="true"

এটি আমার পক্ষে কাজ করেছিল! আমি খুব আপনার জন্য কাজ করে আশা করি :)


হ্যাঁ! এটাই ছিল সমস্যা !! তোমাকে অনেক ধন্যবাদ! তবে আমি বিটম্যাপ ইমেজের কারণে নয় যা আমি ব্যাকগ্রাউন্ডের জন্য ব্যবহার করেছি, অ্যাপ্লিকেশনটি ধীর হয়ে যায় :(
২৪ মে'১us এ কুশল ২৮

13

আপনাকে cardElevationগুনটি ব্যবহার করতে হবে ।
অ্যান্ড্রয়েডএক্স লাইব্রেরি:

আপনি MaterialCardঅফিসিয়াল উপাদান উপাদান লাইব্রেরিতে অন্তর্ভুক্ত ব্যবহার করতে পারেন :

implementation 'com.google.android.material:material:1.x.x'

এবং আপনার বিন্যাসে:

    <com.google.android.material.card.MaterialCardView
        app:cardElevation="xxdp"
        app:cardUseCompatPadding="true"
        ..>

বা CardViewঅ্যান্ড্রয়েড প্যাকেজগুলিতে রয়েছে:

implementation 'androidx.cardview:cardview:1.x.x'

এবং আপনার বিন্যাসে:

     <androidx.cardview.widget.CardView
        app:cardElevation="xxdp"
        app:cardUseCompatPadding="true"
        ..>

ওএলডি সমর্থন পাঠাগার :

<android.support.v7.widget.CardView
    app:cardElevation="xxdp" 
    app:cardUseCompatPadding="true"
    ..>

4
না আমি আবার চেষ্টা করেছি, এবং এটি কার্যকর হয়নি। আমি আমার পুরো এক্সএমএল উপরে উপরে যুক্ত করেছি।
দি লেলেটসমাস্টার

আমার জন্য কাজ কর. ডিফল্ট উচ্চতা কি?
এসএমবিগস

উচ্চতা কার্ড বিশ্রামের উচ্চতা: 2 ডিপি কার্ড উত্থাপিত উচ্চতা: 8 ডিপি কার্ডের ডিফল্ট 2dp উচ্চতা থাকে। ডেস্কটপে কার্ডগুলিতে 0 ডিপি বিশ্রামের উচ্চতা থাকতে পারে এবং হোভারের সময় 8 ডিপি উচ্চতা অর্জন করতে পারে। Google.com/design/spec/compferences/…
জিমাএক্সএক্সএক্সএক্স


4
@ মাকারান্দ ট্রু। ডিজাইন গ্রন্থাগারটি আর রক্ষণাবেক্ষণ করা হয় না তবে আমি 5 বছর আগে এই প্রশ্নের উত্তর দিয়েছি। যে কোনও ক্ষেত্রে আমি উত্তরটি andriodx বিশদ সহ আপডেট করেছি।
গ্যাব্রিয়েল মেরিওটি

1

এটি যোগ করে আমার সমাধান

xmlns: কার্ড_ভিউ = "http://schemas.android.com/apk/res-auto"

উদাহরণ স্বরূপ:

<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    card_view:cardCornerRadius="5dp">

0

আমি একটি অ্যাপ যুক্ত করছি: কার্ড ভিউতে কার্ডএলভিশন = "8 ডিপি" বৈশিষ্ট্য, তাই এটির মতো হবে:

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="160dp"
        android:layout_marginStart="16dp"
        android:layout_marginLeft="16dp"
        android:layout_marginTop="24dp"
        android:layout_marginEnd="16dp"
        android:layout_marginRight="16dp"
        app:cardElevation="8dp"
        app:cardCornerRadius="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="centerCrop"
            android:src="@drawable/kmp_warna1" />

    </android.support.v7.widget.CardView>

আশা করি এটি সাহায্য করবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.