তালিকাগুলির শেষ উপাদানটিতে নীচের মার্জিন যুক্ত করা হচ্ছে


83

জটিল আইটেমের পটভূমির সাথে তালিকাভিউ যুক্ত করতে আমাকে যুক্ত করতে হবে: উপরে এবং নীচে সমান / বিজোড় এবং বৃত্তাকার কোণগুলির জন্য পৃথক। দেখে মনে হচ্ছে:

তালিকার উপরে শীর্ষ

আমি স্তর-তালিকার মাধ্যমে এই সমস্ত জিনিস বাস্তবায়ন করেছি, তবে আমি আরও একটি কাজ করতে চাই। এখন নীচের আইটেমটি পর্দার নীচের দিকে near কিছু জায়গা যুক্ত করা ভাল।

তালিকার নীচের অংশটি দেখতে ভাল লাগছে না

আমি তালিকাভিউতে নীচের মার্জিনটি যুক্ত করতে চাই না, আমার কেবল শেষ আইটেমটির জন্য মার্জিন দরকার।

আমি এটি করতে যেভাবে দেখছি:

পাদচরণ

এক ধরণের হ্যাক - তালিকার ভিউতে খালি টেক্সটভিউ সহ পাদলেখ যুক্ত করুন। তবে পাদচরণকারীরা বেশ অস্থিতিশীল জিনিস, এগুলি সাধারণত নোটিফিকেশন ডেটাসেট চেঞ্জ হওয়ার পরে অদৃশ্য হয়ে যায় এবং সেগুলি ফিরে পাওয়ার কোনও উপায় নেই they

স্বচ্ছ পিক্সেল সহ চিত্র

আমি ডিজাইনারকে নীচের পটভূমির সংস্থানগুলিতে স্বচ্ছ পিক্সেল যুক্ত করতে বলেছিলাম। দুর্ভাগ্যক্রমে, এই ক্ষেত্রে উল্লম্ব কেন্দ্রীকরণ সম্পূর্ণরূপে ভাঙা। উদাহরণস্বরূপ, এখানে 9 প্যাচ রয়েছে:

9 প্যাচ

এবং লেআউট এর মত:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
        >
    <!-- View with background with transparent pixels on bottom -->
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
                  android:id="@+id/item"
                  android:background="@drawable/some_bgr"
                  android:padding="10dp"
            >
        <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"
                  android:text="Title"
                  android:layout_gravity="center"
                  android:textSize="18sp"
                />
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
                  android:text="Detail"
                  android:layout_gravity="center"
                  android:textSize="18sp"
                />
    </LinearLayout>

    <!-- Just for marking place took by view -->
    <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"
                 android:layout_below="@id/item"
                 android:background="#88ff55"
            />
</RelativeLayout>

ফলাফল:

ফলাফল

যেমন আপনি দেখছেন, কেন্দ্রীকরণ কাজ করছে না। দুর্ভাগ্যক্রমে (বিটিডাব্লু, যদি টেক্সটভিউর ব্যাকগ্রাউন্ড হিসাবে এই 9 প্যাচটি নির্দিষ্ট করা হয়, কেন্দ্রীকরণটি ভাল কাজ করে you আপনি যদি কোনও নিবন্ধ জানেন, এটি ব্যাখ্যা করে, দয়া করে আমাকে জানান))

অ্যাডাপ্টার বাস্তবায়নে সর্বশেষ আইটেমের নীচে মার্জিন যুক্ত করুন

এটি কাজ করা উচিত, তবে অজানা কারণে আমি এখনও এটি কাজ করতে পারি না। আমি এইভাবে পছন্দ করি না, কারণ আমি কোডে মাত্রা পরিবর্তন করতে পছন্দ করি না।

তাই

ইতিমধ্যে কল্পিত উপায় রয়েছে - নির্দিষ্ট বিটম্যাপ এবং মার্জিনের সাহায্যে কিছু এক্সএমএল আঁকতে সক্ষম। অঙ্কনযোগ্য ধারণা অনুসারে এটি সম্ভব হওয়া উচিত, তবে আমি বাস্তবায়ন পাই না। কেউ হতে পারে জানেন?

অন্য কোন ধারণা?


আপনি শেষ আইটেম পরে শুধু একটি মার্জিন যুক্ত করতে চান?
বোকা

হ্যাঁ. প্রশ্নটি ঠিক এর মতোই মনে হচ্ছে
দরজা

দয়া করে নীচে আমার উত্তরটি দেখুন
বোকা

আমি আসলে পাদলেখ পদ্ধতির ব্যবহার বিবেচনা করব। আমি কখনই এগুলিকে নিজের দ্বারা অদৃশ্য হতে দেখিনি, বিশেষত কোনও কল করার পরে নয় notifyDataSetChanged()। যদি ঘটতে থাকে তবে আপনি অন্য কোনও ভুল করছেন। একটি পাদচরণ দ্বারা পরিচালিত হয় ListViewএবং অ্যাডাপ্টারের আসল ডেটাসেটের সাথে খুব কম সম্পর্ক থাকে।
এমএইচ।

শ্রেষ্ঠ উপায় [হয় stackoverflow.com/questions/6288167/... [1]: stackoverflow.com/questions/6288167/... এটা সত্যিই আমাকে সাহায্য
Bunyod

উত্তর:


280

আপনার মধ্যে ListView, একটি paddingBottomএবং সেট করুন clipToPadding="false"

  <ListView
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:paddingBottom="8dp"
      android:clipToPadding="false"
      android:scrollbarStyle="outsideOverlay"/>
  • এটিও কাজ করে RecyclerView

  • কেবলমাত্র android:scrollbarStyle="outsideOverlay"যদি আপনি চান যে স্ক্রোল বারটি প্যাডযুক্ত অঞ্চলে উপচে না পড়ে।


নীচ থেকে আমার 8 ডিপি ক্লিপ করা আছে ... আসলে আমি কেবলমাত্র শেষ আইটেমের জন্য 8 ডিপি নীচে চাই ... তবে কী করব?
এলিজাবেথ

4
@ অ্যান্ড্রয়েডবিগনার আপনি কী চান তা আমি বুঝতে পারি না। এটি ঠিক তাই করে।
ক্লকস্মিত

12
যুক্ত করতে ভুলবেন না android:scrollbarStyle="outsideOverlay"যাতে আপনার স্ক্রোলবার প্যাডিংয়ের ভিতরে না থাকে
gfpacheco

4
রঙ নিয়ে কিছু ঝামেলা হতে পারে। নীচের প্যাডিংয়ের তালিকার পটভূমির রঙ রয়েছে, শেষ আইটেমটির ব্যাকগ্রাউন্ড রঙ নেই
grine4ka

আমরা কী এটি ব্যবহার করে সোয়াইপ রিফ্রেশলআউট রিফ্রেশ সূচকটি পরিচালনা করতে পারি?
হেমন্ত কৌশিক

8

আপনার তালিকায় একটি খালি ফুটার যুক্ত করুন:

TextView empty = new TextView(this);
empty.setHeight(150);
listview.addFooterView(empty);

তার জন্য আমি প্রস্তাব দিচ্ছি: listview.addFooterView (খালি, ডেটা: নাল, isSelectable: মিথ্যা);
সাইমন

4

আপনি চাইলে কোড থেকেও এটি করতে পারেন, উদাহরণস্বরূপ আমি এখানে বিভিন্ন পরিস্থিতিতে এডিটেক্সট করতে প্রতিক্রিয়া জানিয়েছি:

   if(s.toString().length()>0)
   {
      contacts_lv.setClipToPadding(false);
      contacts_lv.setPadding(0,0,0,270*screenDensity);
   }
   else
   {
      contacts_lv.setClipToPadding(true);
      contacts_lv.setPadding(0,0,0,0);
   }

2

ক্লকস্মিথের উত্তরটি সেরা এবং সুন্দর চালাক। আপনি খালি ফুটার ভিউও তৈরি করতে পারেন।


4
প্রথম সমাধানটি কার্যকর হয়নি, তবে আপনার পরামর্শটি কার্যকর করেছে, সত্যিই ভাল ধারণা আপনাকে ধন্যবাদ
বদর

1

আপনার তালিকায় এই দুটি লাইন যুক্ত করুন এক্সএমএল কোড দেখুন:

android:transcriptMode="alwaysScroll"  
android:stackFromBottom="true"

0

আর একটি সমাধান হতে পারে আপনি নির্দিষ্ট উচ্চতা সহ একটি মক ভিউ তৈরি করেন।

গেটভিউকাউন্টে আপনার অ্যাডাপ্টারে রিটার্ন 2।

গেটকাউন্টে আপনার ডেটা.সাইজ +1 1 প্রদান করুন।

GetViewType চেক এ উপাদানটি শেষ উপাদানটি ফিরে আসে কিনা 2;

মকভিউটি পপুলেট করতে এই ধরণের গেটভিউতে ব্যবহার করুন।


-2

আমার ধারণা আপনি কেবল শেষ আইটেমটিতে মার্জিন যুক্ত করতে চান:

সুতরাং আপনি এই পদ্ধতিতে আপনার ভিউভিউ পদ্ধতিতে তালিকার আইটেমের সূচীটি করতে পারেন এবং এটি শেষ আইটেম কিনা তা পরীক্ষা করে দেখুন, তবে ক্রমবর্ধমানভাবে দর্শনে মার্জিন যুক্ত করুন।


আমি "অ্যাডাপ্টারের প্রয়োগের শেষ আইটেমের নীচে মার্জিন যুক্ত করুন" এ এইভাবে বর্ণনা করেছি। আমি আরও চমত্কার উপায় আছে কিনা ভাবছি।
দরজা

আপনি কেন এইভাবে করতে চান না?
বোকা

প্রশ্নে ব্যাখ্যা দেখুন।
দরজা

অন্য কোনও ধারণা নেই - তাই একমাত্র উপায় বলে মনে হচ্ছে
দরজা

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