লিস্টভিউতে পাদলেখ কীভাবে যুক্ত করবেন?


88

আমি একটি অ্যাপ্লিকেশন বিকাশ করছি, আমার অ্যাপ্লিকেশনটিতে, আমি ডোম পার্সিং ব্যবহার করে ডেটা প্রদর্শন করার জন্য লিস্টভিউটি ব্যবহার করছি, আমি তালিকা-ভিউতে পাদচরণ করতে চাই, যখন আমি ফুটারে ক্লিক করি তখন তালিকার ভিউতে অতিরিক্ত আরও ডেটা যুক্ত হয়, আমি চিত্রটি সংযুক্ত করি, আমি সেই নকশাটি পছন্দ করব এবং প্রক্রিয়া, দয়া করে চিত্র 1 এবং imgae2 উল্লেখ করুন I আমি লাল আয়তক্ষেত্রে ফুটার উল্লেখ করি

চিত্র 1-পাদলেখ "আরও খবর" এর মতো
বিকল্প পাঠ

বিকল্প পাঠ

চিত্র 2-তালিকায় অতিরিক্ত 10 টি রেকর্ড যুক্ত করুন

উত্তর:


206

আপনি পাদলেখ হিসাবে সেট করতে চান এমন পাঠ্য সমন্বিত একটি ফুটার ভিউ বিন্যাস তৈরি করুন এবং তারপরে চেষ্টা করুন

View footerView = ((LayoutInflater) ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
ListView.addFooterView(footerView);

পাদদেশ জন্য লেআউট এই জাতীয় কিছু হতে পারে:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="7dip"
    android:paddingBottom="7dip"
    android:orientation="horizontal"
    android:gravity="center">

    <LinearLayout 
        android:id="@+id/footer_layout" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_gravity="center">

    <TextView 
        android:text="@string/footer_text_1" 
        android:id="@+id/footer_1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="14dip" 
        android:textStyle="bold" 
        android:layout_marginRight="5dip" />
    </LinearLayout>
</LinearLayout> 

ক্রিয়াকলাপ শ্রেণি হতে পারে:

public class MyListActivty extends ListActivity {
    private Context context = null;
    private ListView list = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        list = (ListView)findViewById(android.R.id.list);

        //code to set adapter to populate list
        View footerView =  ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
        list.addFooterView(footerView);
    }
}

7
এটি ভাল তবে আপনি যদি পাদলেখটি কেবল নীচে স্ক্রোল করার সময় দৃশ্যমান না হয়ে পর্দায় স্থির করতে চান? এবং আপনি যদি তালিকাটি EMPTY থাকা অবস্থায়ও পাদলেখটি দৃশ্যমান হতে চান? স্ট্যাকওভারফ্লো . com/ প্রশ্নগুলি / 12353701/… এ সম্পূর্ণ প্রশ্ন দেখুন ।
gcl1

33
এই কোডটি কাজ করতে আমার কিছু সমস্যা হয়েছিল এবং সেগুলি সমাধান করেছি। এখানে অ্যাডফুটারভিউ () ডকুমেন্টেশন যা বলেছে তা হলNOTE: Call this before calling setAdapter. This is so ListView can wrap the supplied cursor with one that will also account for header and footer views.

13
@ gcl1 সেক্ষেত্রে এটি পাদচরণ নয়, আপনার বিন্যাসে কেবলমাত্র একটি সাধারণ উপাদান যা তালিকার দৃশ্যের নীচে রয়েছে। শুধু, আপনি কি জানেন, এটি তালিকা দেখার নীচে রাখবেন?
Davor

4
@ ডেমোনস্টেনকে কেবল চিৎকার করুন: আপনি ভিউগুলি যুক্ত করার আগে যদি সেটএডাপ্টার () কল করেন তবে আপনার খারাপ সময় কাটাতে হবে।
বেন ওগোরেক

4
যদি অ্যাডাপ্টারে কোনও ডেটা না থাকে তবে পাদলেখ সংযুক্ত হচ্ছে না (দেখাচ্ছে)। সুতরাং অ্যাডাপ্টারে কোনও ডেটা না থাকলেও আমরা কীভাবে ফুটার প্রদর্শন করতে পারি? ধন্যবাদ
কল্পেশ লাখানী

10

উত্তরগুলি এখানে কিছুটা পুরানো। কোডটি একই থাকলেও আচরণে কিছু পরিবর্তন রয়েছে।

public class MyListActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null, false);
        getListView().addFooterView(footerView);
        setListAdapter(new ArrayAdapter<String>(this, getResources().getStringArray(R.array.news)));
    }
}

addFooterView()পদ্ধতি সম্পর্কে তথ্য

তালিকার নীচে উপস্থিত হওয়ার জন্য একটি স্থির দর্শন যোগ করুন। যদি addFooterView()একাধিকবার বলা হয়, দর্শনগুলি তাদের যুক্ত করা ক্রমে উপস্থিত হবে। এই কলটি ব্যবহার করে যুক্ত করা দৃশ্যগুলি তারা চাইলে ফোকাস নিতে পারে।

উপরের বেশিরভাগ উত্তরের উপর চাপ খুব গুরুত্বপূর্ণ বিষয় -

addFooterView()কল করার আগে অবশ্যই ফোন করা উচিত setAdapter()hisএটি তাই লিস্টভিউ সরবরাহকৃত কার্সারটিকে এমন একটি দিয়ে মুড়ে ফেলতে পারে যা শিরোলেখ এবং পাদচরণের দর্শনগুলির জন্য অ্যাকাউন্ট করে।

কিটকাট থেকে এটি বদলে গেছে।

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

ডকুমেন্টেশন


9

আমি জানি এটি একটি খুব পুরানো প্রশ্ন, তবে আমি এখানে আমার পথটি গুগল করেছিলাম এবং উত্তরটি 100% সন্তোষজনক নয় বলে খুঁজে পেয়েছি, কারণ gcl1 হিসাবে উল্লেখ করা হয়েছে - এইভাবে পাদলেখ পাদলে পাদলেখ আসলেই পাদদেশ নয় - এটি কেবল একটি "অ্যাড-অন" "তালিকায়।

নীচের লাইন - অন্যদের জন্য যারা এখানে তাদের পথ গুগল করতে পারে - আমি এখানে নীচের পরামর্শটি পেয়েছি: তালিকা ফ্রেমের নীচে স্থির এবং সর্বদা দৃশ্যমান পাদদেশ

নিম্নলিখিতটি হিসাবে চেষ্টা করে দেখুন, যেখানে এক্সএমএলে প্রথমে তালিকাভুক্ত বোতামটিতে (বা কোনও পাদলেখের উপাদান) জোর দেওয়া হয়েছে - এবং তারপরে তালিকাটিকে "লেআউট_ উপরে" হিসাবে যুক্ত করা হয়েছে:

<RelativeLayout>

<Button android:id="@+id/footer" android:layout_alignParentBottom="true"/> 
<ListView android:id="@android:id/list" **android:layout_above**="@id/footer"> <!-- the list -->

</RelativeLayout>

6

লিস্টভিউ যদি তালিকার ক্রিয়াকলাপের শিশু হয়:

getListView().addFooterView(
    getLayoutInflater().inflate(R.layout.footer_view, null)
);

(অনক্রিটের ভিতরে) ()


2

আপনি যে কার্যকলাপে তালিকাভুক্ত পাদচরণ যুক্ত করতে চান এবং আমি তালিকাগুলির পাদচরণ ক্লিকে একটি ইভেন্টও তৈরি করেছি।

  public class MainActivity extends Activity
{

        @Override
        protected void onCreate(Bundle savedInstanceState)
         {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            ListView  list_of_f = (ListView) findViewById(R.id.list_of_f);

            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View view = inflater.inflate(R.layout.web_view, null);  // i have open a webview on the listview footer

            RelativeLayout  layoutFooter = (RelativeLayout) view.findViewById(R.id.layoutFooter);

            list_of_f.addFooterView(view);

        }

}

কার্যকলাপ_মাইন.এক্সএমএল

<?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"
    android:background="@drawable/bg" >

    <ImageView
        android:id="@+id/dept_nav"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/dept_nav" />

    <ListView
        android:id="@+id/list_of_f"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/dept_nav"
        android:layout_margin="5dp"
        android:layout_marginTop="10dp"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:listSelector="@android:color/transparent" >
    </ListView>

</RelativeLayout>

0

এই প্রশ্নে, সেরা উত্তর আমার পক্ষে কাজ করে না। এর পরে তালিকার পাদচরণ ফুটার দেখানোর জন্য আমি এই পদ্ধতিটি পেয়েছি,

LayoutInflater inflater = getLayoutInflater();
ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false);
listView.addFooterView(footerView, null, false);

এবং নতুন লেআউট কল পাদলেখ তৈরি করুন lay

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Done"
        android:textStyle="italic"
        android:background="#d6cf55"
        android:padding="10dp"/>
</LinearLayout>

কাজ না হলে এই নিবন্ধটি শুনুন refer


0

আপনি একটি স্ট্যাক লেআউট ব্যবহার করতে পারেন, এই বিন্যাসের অভ্যন্তরে আপনি একটি তালিকা একটি ফ্রেম রাখতে পারেন, উদাহরণস্বরূপ:

<StackLayout VerticalOptions="FillAndExpand">
            <ListView  ItemsSource="{Binding YourList}"
                       CachingStrategy="RecycleElement"
                       HasUnevenRows="True">

                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell >
                            <StackLayout  Orientation="Horizontal">
                                <Label Text="{Binding Image, Mode=TwoWay}" />

                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
            <Frame BackgroundColor="AliceBlue" HorizontalOptions="FillAndExpand">
                <Button Text="More"></Button>
            </Frame>
        </StackLayout>

এটি ফলাফল:

এখানে চিত্র বর্ণনা লিখুন

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