ฉันมีรายการมากมายบนหน้าจอและฉันต้องใช้แถบเลื่อนเพื่อให้ผู้ใช้สามารถเลื่อนลงได้ อย่างไรก็ตามการเลื่อนไม่ปรากฏให้เห็นหรือไม่ทำงาน เป็นไปได้อย่างไรที่จะเพิ่มแถบเลื่อนไปที่LinearLayout
?
ฉันมีรายการมากมายบนหน้าจอและฉันต้องใช้แถบเลื่อนเพื่อให้ผู้ใช้สามารถเลื่อนลงได้ อย่างไรก็ตามการเลื่อนไม่ปรากฏให้เห็นหรือไม่ทำงาน เป็นไปได้อย่างไรที่จะเพิ่มแถบเลื่อนไปที่LinearLayout
?
คำตอบ:
ตัดเลย์เอาต์เชิงเส้นด้วย a <ScrollView>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
หมายเหตุ: fill_parentถูกคัดค้านและเปลี่ยนชื่อเป็นmatch_parentใน API ระดับ 8 ขึ้นไป
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/container"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</LinearLayout>
</ScrollView>
<ScrollView>
ซึ่งสามารถทำได้โดยใช้แท็ก สำหรับScrollViewสิ่งหนึ่งที่คุณต้องเตือนว่าScrollView ต้องมีเด็กเพียงครั้งเดียว
หากคุณต้องการเลื่อนแบบเต็มของคุณแล้วเพิ่ม<ScrollView>
ที่ด้านบน ตรวจสอบตัวอย่างที่ระบุด้านล่าง
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
แต่ถ้าคุณต้องการให้ส่วนหนึ่งของเค้าโครงของคุณสามารถเลื่อนได้ให้เพิ่ม<ScrollView>
เข้าไปในส่วนนั้น ตรวจสอบตัวอย่างที่ระบุด้านล่าง
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="400dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Content here -->
</LinearLayout>
</ScrollView>
</LinearLayout>
นี่คือวิธีที่ฉันทำโดยการลองผิดลองถูก
ScrollView - (the outer wrapper).
LinearLayout (child-1).
LinearLayout (child-1a).
LinearLayout (child-1b).
เนื่องจาก ScrollView สามารถมีลูกเพียงคนเดียวลูกคนนั้นจึงเป็นเค้าโครงแบบเส้นตรง จากนั้นเค้าโครงประเภทอื่นทั้งหมดจะเกิดขึ้นในโครงร่างเชิงเส้นแรก ฉันยังไม่ได้พยายามที่จะรวมรูปแบบที่เกี่ยวข้อง แต่พวกเขาผลักฉันถั่วดังนั้นฉันจะรอจนกว่าสติของฉันกลับมา
คุณต้องใช้แอ็ตทริบิวต์ต่อไปนี้และล้อมรอบภายในโครงร่างเชิงเส้น
<LinearLayout ...>
<scrollView ...>
</scrollView>
</LinearLayout>
คุณจำเป็นต้องวางScrollViewเป็นไฟล์ย่อยของไฟล์ Layout และตอนนี้ให้ linearlayout ของคุณอยู่ข้างใน ตอนนี้ Android จะตัดสินใจบนพื้นฐานของเนื้อหาและขนาดของอุปกรณ์ที่มีอยู่ไม่ว่าจะแสดงเลื่อนหรือไม่
ตรวจสอบให้แน่ใจว่า linearlayout ไม่มีพี่น้องเพราะScrollViewไม่สามารถมีลูกได้มากกว่าหนึ่งคน
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<---------Content Here --------------->
</LinearLayout>
</ScrollView>
</LinearLayout>
คุณสามารถเพิ่มแอททริบิวใน linearLayout: android:scrollbars="vertical"