অ্যান্ড্রয়েডে স্ক্রোলভিউ কীভাবে ব্যবহার করবেন?


241

আমার একটি এক্সএমএল লেআউট ফাইল রয়েছে তবে পাঠ্যটি স্ক্রিনের আকারের চেয়ে বেশি is একটি তৈরি করতে আমার কী করতে হবে ScrollView?

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

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:stretchColumns="1" >

    <TableRow>
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:layout_marginTop="10dip"
            android:layout_marginRight="5dip"
            android:tint="#55ff0000"
            android:src="@drawable/icon" />
    </TableRow>
    <TableRow>
        <TextView
            android:id="@+id/name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Name " />
        <TextView android:id="@+id/name1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Veer" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/age"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Age" />

        <TextView android:id="@+id/age1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="23" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/gender"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Gender" />
        <TextView android:id="@+id/gender1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Male" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/profession"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Professsion" />
        <TextView android:id="@+id/profession1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Mobile Developer" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Phone" />
        <TextView android:id="@+id/phone1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="03333736767" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/email"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Email" />
        <TextView android:id="@+id/email1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="veer.developer@gmail.com" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/hobby"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Hobby" />
        <TextView android:id="@+id/hobby1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Play Games" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/ilike"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  I like" />
        <TextView android:id="@+id/ilike1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Java, Objective-c" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/idislike"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  I dislike" />
        <TextView android:id="@+id/idislike1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Microsoft" />
    </TableRow>
    <TableRow>
        <TextView android:id="@+id/address"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="3dip"
            android:text="  Address" />
        <TextView android:id="@+id/address1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Johar Mor" />
    </TableRow>
</TableLayout>

উত্তর:


469

কেবলমাত্র শীর্ষ-স্তরের লেআউটটিকে একটি স্ক্রোলভিউ করুন:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:stretchColumns="1">

        <!-- everything you already have -->

    </TableLayout>
</ScrollView>

1
কোনও স্ক্রোলভিউয়ের আওতায় স্ক্রোলভিউ দেওয়া কি সম্ভব ??? বা একই পৃষ্ঠায় একাধিক স্ক্রোলভিউ সরবরাহ করতে ???
তারিত রায়

1
@ তরিত্রয়ে - অবশ্যই কোনও স্ক্রিনে একাধিক স্ক্রোলভিউ থাকা কোনও সমস্যা নয়; প্যারেন্ট লেআউটটি সহজভাবে সাজানো দরকার যাতে তাদের সবার স্ক্রিনে জায়গা থাকে। অন্যটির ভিতরে একটি স্ক্রোলভিউ হিসাবে, এটি কঠিন। পরিবর্তে, অ্যান্ড্রয়েড সামঞ্জস্য লাইব্রেরিতে নেস্টডস্ক্রোলভিউ রয়েছে । সেই অ্যাপ্লিকেশনটির জন্য নেস্টডস্ক্রোলভিউ কীভাবে ব্যবহার করবেন সে সম্পর্কে ওয়েবে প্রচুর টিউটোরিয়াল রয়েছে।
টেড হপ

36

স্ক্রোলভিউ কীভাবে ব্যবহার করবেন

ব্যবহার ScrollViewকরা খুব কঠিন নয়। আপনি কেবল আপনার বিন্যাসে একটি যুক্ত করতে পারেন এবং যা কিছু ভিতরে স্ক্রোল করতে চান তা রাখতে পারেন। ScrollViewকেবল একটি বাচ্চা লাগে তাই আপনি যদি কিছু জিনিস ভিতরে রাখতে চান তবে আপনার প্রথম জিনিসটি একটি জাতীয় কিছু হওয়া উচিত LinearLayout

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <!-- things to scroll -->

    </LinearLayout>
</ScrollView>

যদি আপনি জিনিসগুলি অনুভূমিকভাবে স্ক্রোল করতে চান তবে একটি ব্যবহার করুন HorizontalScrollView

সামগ্রীটি স্ক্রিনে পূরণ করা

যেমনটি এই পোস্টে আলোচনা করা হয়েছে , কখনও কখনও আপনি ScrollViewসামগ্রীটি স্ক্রিনটি পূরণ করতে চান । উদাহরণস্বরূপ, যদি আপনার একটি রিডমিমে শেষে কিছু বোতাম থাকে। আপনি চান বাটনগুলি সর্বদা পাঠ্যের শেষে এবং স্ক্রিনের নীচে থাকুক, এমনকি যদি পাঠ্যটি স্ক্রোল না করে।

যদি সামগ্রীটি স্ক্রল করে, তবে সবকিছু ঠিক আছে। তবে বিষয়বস্তু যদি স্ক্রিনের আকারের চেয়ে ছোট হয় তবে বোতামগুলি নীচে নেই।

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

এটি ব্যবহার fillViewPortকরে ScrollViewএবং সামগ্রীতে বিন্যাসের ওজন ব্যবহারের সংমিশ্রণে সমাধান করা যেতে পারে । ব্যবহারের fillViewPortফলে ScrollViewপূর্ণ ক্ষেত্রটি পূর্ণ হয়। layout_weightএকটির মতামতের উপর সেট করা সেই দৃশ্যকে LinearLayoutকোনও অতিরিক্ত স্থান পূরণ করতে প্রসারিত করে।

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

এখানে এক্সএমএল

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">                        <--- fillViewport

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textview"
            android:layout_height="0dp"                <--- 
            android:layout_weight="1"                  <--- set layout_weight
            android:layout_width="match_parent"
            android:padding="6dp"
            android:text="hello"/>

        <LinearLayout
            android:layout_height="wrap_content"       <--- wrap_content
            android:layout_width="match_parent"
            android:background="@android:drawable/bottom_bar"
            android:gravity="center_vertical">

            <Button
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="Accept" />

            <Button
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="Refuse" />

        </LinearLayout>
    </LinearLayout>
</ScrollView>

এই উত্তরের ধারণাটি আগের উত্তর থেকে এসেছে যা এখন মুছে ফেলা হয়েছে ( 10 কে ব্যবহারকারীদের জন্য লিঙ্ক )। এই উত্তরের সামগ্রীটি এই পোস্টটির আপডেট এবং অভিযোজন ।


2
এটি আমার জন্য অনেক সময় সাশ্রয় করেছে
ভাস্কারা আরানী

31

দুটি বিকল্প আছে। আপনি আপনার পুরো লেআউটটিকে স্ক্রোলযোগ্য করতে পারেন বা কেবল টেক্সটভিউকে স্ক্রোলযোগ্য করতে পারেন।

প্রথম মামলার জন্য,

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TableLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:stretchColumns="1" >

            <TableRow>

                <ImageView
                    android:id="@+id/imageView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dip"
                    android:layout_marginRight="5dip"
                    android:layout_marginTop="10dip"
                    android:src="@drawable/icon"
                    android:tint="#55ff0000" >
                </ImageView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/name"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Name " >
                </TextView>

                <TextView
                    android:id="@+id/name1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Veer" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/age"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Age" >
                </TextView>

                <TextView
                    android:id="@+id/age1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="23" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/gender"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Gender" >
                </TextView>

                <TextView
                    android:id="@+id/gender1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Male" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/profession"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Professsion" >
                </TextView>

                <TextView
                    android:id="@+id/profession1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Mobile Developer" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/phone"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Phone" >
                </TextView>

                <TextView
                    android:id="@+id/phone1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="03333736767" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/email"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Email" >
                </TextView>

                <TextView
                    android:id="@+id/email1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="veer.developer@gmail.com" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/hobby"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Hobby" >
                </TextView>

                <TextView
                    android:id="@+id/hobby1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Play Games" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/ilike"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  I like" >
                </TextView>

                <TextView
                    android:id="@+id/ilike1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Java, Objective-c" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/idislike"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  I dislike" >
                </TextView>

                <TextView
                    android:id="@+id/idislike1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Microsoft" >
                </TextView>
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/address"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:padding="3dip"
                    android:text="  Address" >
                </TextView>

                <TextView
                    android:id="@+id/address1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Johar Mor" >
                </TextView>
            </TableRow>

            <Relativelayout>
            </Relativelayout>
        </TableLayout>
    </RelativeLayout>

</ScrollView>

বা, যেমনটি আমি বলেছি আপনি কেবল টেক্সটভিউয়ের জন্য স্ক্রোলভিউ ব্যবহার করতে পারেন।


আপনি যেখানে স্ক্রোলটি এখানে শেষ করেছেন দেখুন </ স্ক্রোলভিউ>
চত্বর বীর সুথার

1
দুঃখিত আমার খারাপ. আমি এখনই উত্তরটি সম্পাদনা করেছি। আপনাকে শেষ পর্যন্ত শেষ করতে হবে।
অ্যান্ড্রো সেলভা

আমার জন্য কাজ করেছেন। আমার আমার লিনিয়ারলআউটটিকে একটি স্ক্রোলভিউতে মুড়তে হবে।
জিশান

টেক্সটভিউ ক্লাসটিও তার নিজস্ব স্ক্রোলিংয়ের যত্ন নেয়, সুতরাং কোনও স্ক্রোলভিউয়ের প্রয়োজন হয় না, তবে দুটিকে একসাথে ব্যবহার করে বৃহত্তর পাত্রে কোনও পাঠ্য দৃশ্যের প্রভাব অর্জন করা সম্ভব। এর থেকে উদ্ধৃত হয়েছে: developer.android.com/references/android/widget/ScrolView.html
metis

14

একজন ScrollView একটি বিশেষ ধরনের হয় FrameLayout মধ্যে এটি মতামত যে প্রকৃত display.I চেয়ে আরও জায়গা দখল শুধু কিছু বৈশিষ্ট্য যোগ একটি তালিকা মাধ্যমে স্ক্রোল করুন ব্যবহারকারীদের অনুমতি দেয়।

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"
     android:fillViewport="true"
     android:scrollbars = "vertical"
     android:scrollbarStyle="insideInset"
    >
    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1"
        >
        <!-- Add here which you want -->
    </TableLayout>

</ScrollView>

8

উপরে যেমন বলা হয়েছে আপনি এটিকে একটি অভ্যন্তরে রেখে দিতে পারেন ScrollView... এবং আপনি যদি স্ক্রোল ভিউটি অনুভূমিকভাবে রাখতে HorizontalScrollViewচান তবে এটি ভিতরে রেখে দিতে পারেন ... এবং আপনি যদি চান আপনার উপাদান (বা বিন্যাস) উভয়কে এইরকমভাবে রাখার জন্য সমর্থন করুন:

  <HorizontalScrollView>
        <ScrollView>
            <!-- SOME THING -->
        </ScrollView>
    </HorizontalScrollView>

এবং অবশ্যই layout_widthএবং সেট নির্ধারণের সাথে layout_height


লেআউট_উইথ এবং লেআউট_উইট সেটিংয়ের গুরুত্ব উল্লেখ করার জন্য +1
অরুনকুমার

4

আপনার টেবিল লেআউটটি একটি স্ক্রোলভিউ লেআউটের ভিতরে রাখুন hat যা আপনার সমস্যার সমাধান করবে।


4

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

/ ** অ্যান্ড্রয়েড: স্ক্রোলযোগ্য = এক্সএমএল লেআউটে টেক্সটভিউতে সত্য।

TextView txtScroll = (TextView) findViewById(R.id.txt1);
        txtScroll.setMovementMethod(new ScrollingMovementMethod());

* //


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

android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:stretchColumns="1" >

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <RadioGroup
                android:layout_width="fill_parent"
                android:layout_height="match_parent" >

                <RadioButton
                    android:id="@+id/butonSecim1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_weight=".50"
                    android:text="@string/buton1Text" />

                <RadioButton
                    android:id="@+id/butonSecim2"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_gravity="center"
                    android:layout_weight=".50"
                    android:text="@string/buton2Text" />
            </RadioGroup>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TableLayout
                android:id="@+id/bilgiAlani"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:visibility="invisible" >

                <TableRow
                    android:id="@+id/BilgiAlanitableRow2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" >

                    <TextView
                        android:id="@+id/bilgiMesaji"
                        android:layout_width="wrap_content"
                        android:layout_height="match_parent"
                        android:layout_weight=".100"
                        android:ems="10"
                        android:gravity="left|top"
                        android:inputType="textMultiLine" />
                </TableRow>
            </TableLayout>
        </TableRow>

        <TableRow
            android:id="@+id/tableRow3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/metin4"
                android:layout_height="match_parent"
                android:layout_weight=".100"
                android:text="deneme" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <TextView
                android:id="@+id/metin5"
                android:layout_height="match_parent"
                android:layout_weight=".100"
                android:text="deneme" />
        </TableRow>
    </TableLayout>

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