কীভাবে রিসাইক্লারভিউ অ্যাপ্লিকেশনটি সেট করবেন: এক্সএমএল থেকে লেআউটম্যানজার = ""?


167

এক্সএমএল থেকে রিসাইক্লারভিউ লেআউট ম্যানেজারটি কীভাবে সেট করবেন ?

    <android.support.v7.widget.RecyclerView
        app:layoutManager="???"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>


1
@ ডিটার_এইচ আপনি গ্রিডলআউটম্যানেজার উদাহরণ সহ একটি উত্তর সরবরাহ করতে পারেন?
ইলিয়া গাজমান

4
আপনি ব্যবহার করতে পারেন app:layoutManager="android.support.v7.widget.GridLayoutManager"। (চার আর্গুমেন্ট সহ কনস্ট্রাকটর ব্যবহার করা হবে Context, AttributeSet, int, int)। ডকুমেন্টেশন অনুসারে এই কনস্ট্রাক্টরটি ব্যবহার করা হয় যখন লেআউট ম্যানেজারটি এক্সএমএলে পুনর্ব্যবহারযোগ্য বৈশিষ্ট্য বিন্যাসের ব্যবস্থাপনার দ্বারা সেট করা থাকে। যদি এক্সএমএলে স্প্যানকাউন্টটি নির্দিষ্ট না করা হয় তবে এটি একটি একক কলামে ডিফল্ট হয়
ট্যান্ট্রিফলস

উত্তর:


269

আপনি ডকটিতে যাচাই করতে পারেন:

ব্যবহৃত শ্রেণীর নাম Layout Manager

শ্রেণীর অবশ্যই প্রসারিত হওয়া উচিত androidx.recyclerview.widget.RecyclerViewView$LayoutManagerএবং স্বাক্ষর সহ একটি ডিফল্ট কনস্ট্রাক্টর বা কনস্ট্রাক্টর থাকতে হবে(android.content.Context, android.util.AttributeSet, int, int)

নামটি যদি কোনও দিয়ে শুরু হয় তবে '.'অ্যাপ্লিকেশন প্যাকেজটি উপসর্গযুক্ত। অন্যথায়, নামের '.'একটিতে থাকলে, শ্রেণিকামটি পুরো শ্রেণীর নাম হিসাবে ধরে নেওয়া হয়। অন্যথায়, পুনর্ব্যবহারযোগ্য ভিউ প্যাকেজ ( androidx.appcompat.widget) উপসর্গযুক্ত

সঙ্গে androidx আপনি ব্যবহার করতে পারেন:

<androidx.recyclerview.widget.RecyclerView
     xmlns:app="http://schemas.android.com/apk/res-auto"
     app:layoutManager="androidx.recyclerview.widget.GridLayoutManager">

সঙ্গে সমর্থন লাইব্রেরি আপনি ব্যবহার করতে পারেন:

<android.support.v7.widget.RecyclerView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:layoutManager="android.support.v7.widget.GridLayoutManager" >

এছাড়াও আপনি এই বৈশিষ্ট্যগুলি যুক্ত করতে পারেন:

  • android:orientation= "horizontal|vertical": লেআউটম্যানেজারের ওরিয়েন্টেশন নিয়ন্ত্রণ করতে (যেমন LinearLayoutManager:)
  • app:spanCount: এর জন্য কলামগুলির সংখ্যা নির্ধারণ করতে GridLayoutManager

উদাহরণ:

<androidx.recyclerview.widget.RecyclerView
    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
    app:spanCount="2"
    ...>

বা:

<androidx.recyclerview.widget.RecyclerView
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    android:orientation="vertical"
    ...>

আপনি এগুলি toolsনেমস্পেস (ie tools:orientationএবং tools:layoutManager) ব্যবহার করে যুক্ত করতে পারেন এবং তারপরে এটি কেবল আইডিই পূর্বরূপকে প্রভাবিত করে আপনি সেই মানগুলিকে কোডে সেট করা চালিয়ে যেতে পারেন।


77
এবং আপনি android:orientationযেমন
লিনিয়ারালাউটম্যানেজারের

3
@ গ্যাব্রিয়েল মেরিওটি ​​আমি বাস্তবায়নটি যাচাই করেছি এবং এটি প্রতিবিম্ব ব্যবহার করে। পারফরম্যান্স বুদ্ধিমান থেকে কি ঠিক আছে?
আহমদ ফাদলি

4
আমি গ্রিডলআউটম্যানেজারটি ব্যবহার করার ক্ষেত্রে আরও কী কী উপলব্ধ বৈশিষ্ট্য রয়েছে? এর কলামগুলির সংখ্যা (স্প্যানকাউন্ট) সেট করা সম্ভব?
অ্যান্ড্রয়েড বিকাশকারী 12 '

8
@ অ্যান্ড্রয়েড ডেভেলপার হ্যাঁ, উদাহরণস্বরূপ এটিকে তিনটি কলামে সেট করতে অ্যাপ্লিকেশনটি ব্যবহার করুন: স্প্যানকাউন্ট = "3"
জেসার

2
আপনি এটিও ব্যবহার করতে পারেন tools:layoutManager, tools:spanCount(স্বতঃ-সম্পূর্ণ এটি প্রদর্শিত না হলেও) এবং আপনি যদি আপনার কোনও পুনর্ব্যবহারযোগ্য সেটআপ ওভাররাইড করতে না চান (বা
অগ্রগতিতে

87

আপনি যদি এটির সাথে ব্যবহার করতে চান LinearLayoutManager

<android.support.v7.widget.RecyclerView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:layoutManager="android.support.v7.widget.LinearLayoutManager" >

যে সমতুল্য

LinearLayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
mRecyclerView.setLayoutManager(mLayoutManager);

2
গ্যাব্রিয়েল মেরিওটি ​​উত্তরটিতে আপনার সংযোজনটি কী?
ইলিয়া গাজমান

4
কোডে কি সমতুল্য ব্যাখ্যা করুন তবে এথার উদাহরণ সহ লিনিয়ারলআউট
মিনা ফাজি

7
@ উদিশি এটির অনুভূমিক করে তুলতে আপনাকে android:orientation="horizontal"
পুনর্ব্যবহারযোগ্য

7
androidx.recyclerview.widget.LinearLoutoutManager for androidX
ফ্রেপটি

82

এবং আমি androidxসংস্করণ সন্ধান করতে এসেছি যদিও এটি নির্ধারণ করা বেশ সহজ ছিল, এটি এখানে

LinearLayoutManager:

app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"

উদাহরণ:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"/>

GridLayoutManager:

app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"

উদাহরণ:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:spanCount="2"
    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"/>

আপনি উপরের উদাহরণগুলিতে দেখতে পাচ্ছেন আপনি xmlব্যবহারের মাধ্যমে ওরিয়েন্টেশনটি নিয়ন্ত্রণ করতে পারেন

android:orientation="vertical"

এবং

android:orientation="horizontal"

এবং গ্রিডলআউটআউট ম্যানেজার ব্যবহার করে কলামগুলির সংখ্যা নির্ধারণ করতে

app:spanCount="2"

10
আপনি কোন সেট করতে পারেন। কলামের আপনি ব্যবহার যখন GridLayoutManagerযোগ করেapp:spanCount="2"
প্রতীক Butani

ভবিষ্যতের সুসংগত পদ্ধতির
অভিনব সাক্সেনা

এখানেও একই ... অ্যান্ড্রয়েডেক্স off ছাড়তে চলেছে
রবিন হুড

1
ধন্যবাদ আমি spanCountএটি এখানে খুঁজে পেতে খুঁজছি ছিল । উত্তরে কেন
উত্সাহিত করুন তা

16

আমি যে সর্বাধিক সাধারণ ব্যবহার করি তা হ'ল:

<androidx.recyclerview.widget.RecyclerView
    app:layoutManager="androidx.recyclerview.widget.GridLayoutManager" 
    tools:listitem="@layout/grid_item"
    android:orientation="vertical" app:spanCount="3"/>

এবং:

<androidx.recyclerview.widget.RecyclerView
    app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
    tools:listitem="@layout/grid_item"
    android:orientation="vertical"/>

এটি সেট করার প্রস্তাব দেওয়া হয়েছে listitem, যাতে আপনি এটি দেখতে যে লেআউট সম্পাদকের পূর্বরূপে কীভাবে দেখতে পারা যায়।

আপনি যদি আদেশটি বিপরীত করতে চান তবে আমার মনে হয় পরিবর্তে কোডে এটি করতে হবে এবং আপনি যদি সত্যিই কিছু দেখতে চান তবে এক্সএমএলে "সরঞ্জাম" ব্যবহার করুন ...


উপরের এক্সএমএলটিতে আপনি কোনটি appsএবং appনামের স্থান ব্যবহার করেছেন? কারণ আমি বিল্ড টাইম ত্রুটি Android resource linking failed - AAPT: error: attribute orientationপাচ্ছি, যদি আমি ব্যবহার করি app:orientation
ওমকার

ধন্যবাদ, তবে এখনও এটি ভুল নামস্থান sp এটি হবে androidজন্য orientation। এটি appনেমস্পেসের সাথে কাজ করে না সমস্ত কিছু নিখুঁত।
ওমকার

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