คำถามติดแท็ก android-scrollview

วิดเจ็ต Android ที่อนุญาตให้เลื่อนลูกคนเดียวได้หากมีขนาดใหญ่เกินไปสำหรับพื้นที่ที่มองเห็นของหน้าจอ

27
ฉันจะใส่ ListView ลงใน ScrollView โดยไม่ยุบได้อย่างไร
ฉันค้นหาวิธีแก้ไขปัญหานี้แล้วและคำตอบเดียวที่ฉันสามารถหาได้คือ " อย่าใส่ ListView ลงใน ScrollView " ฉันยังไม่เห็นคำอธิบายที่แท้จริงว่าทำไมถึงเป็นเช่นนั้น เหตุผลเดียวที่ฉันสามารถค้นหาได้คือ Google ไม่คิดว่าคุณควรจะทำเช่นนั้น ฉันก็ทำเช่นนั้น ดังนั้นคำถามคือคุณจะวาง ListView ลงใน ScrollView โดยไม่ยุบลงไปจนถึงความสูงขั้นต่ำได้อย่างไร

23
RecyclerView ภายใน ScrollView ไม่ทำงาน
ฉันพยายามใช้เค้าโครงซึ่งมี RecyclerView และ ScrollView ที่เค้าโครงเดียวกัน แม่แบบเค้าโครง: <RelativeLayout> <ScrollView android:id="@+id/myScrollView"> <unrelated data>...</unrealated data> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/my_recycler_view" /> </ScrollView> </RelativeLayout> ปัญหา: ฉันสามารถเลื่อนไปจนถึงองค์ประกอบสุดท้ายของ ScrollView สิ่งที่ฉันพยายาม: มุมมองการ์ดภายในScrollView(ตอนนี้ScrollViewมีRecyclerView) - สามารถดูการ์ดได้จนถึงRecyclerView ความคิดเริ่มแรกคือการใช้สิ่งนี้viewGroupโดยใช้RecyclerViewแทนที่จะScrollViewเป็นประเภทการดูแบบใดแบบหนึ่งCardViewแต่ฉันได้ผลลัพธ์เดียวกันกับScrollView

30
มุมมองรายการ Android ภายในมุมมองเลื่อน
ฉันมีเลย์เอาต์ Android ที่มีscrollViewองค์ประกอบจำนวนหนึ่งอยู่ด้วย ที่ด้านล่างของscrollViewฉันมีlistViewอะแดปเตอร์ที่มีประชากรอยู่แล้ว ปัญหาที่ฉันกำลังประสบอยู่ก็คือ Android ไม่รวมตัวlistViewจากรุ่นscrollViewที่scrollViewมีฟังก์ชั่นเลื่อนได้ ฉันต้องการที่listViewจะตราบเท่าที่เนื้อหาเป็นและสำหรับมุมมองเลื่อนหลักที่จะสามารถเลื่อนได้ ฉันจะบรรลุพฤติกรรมนี้ได้อย่างไร นี่คือเค้าโครงหลักของฉัน: <ScrollView android:id="@+id/scrollView1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:fillViewport="true" android:gravity="top" > <LinearLayout android:id="@+id/foodItemActvity_linearLayout_fragments" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> </ScrollView> จากนั้นผมก็โปรแกรมเพิ่มคอมโพเนนต์ของฉันไป linearlayour foodItemActvity_linearLayout_fragmentsกับประชาชนได้: ด้านล่างเป็นหนึ่งในมุมมองที่โหลดลงใน linearlayout นั้น นี่คือสิ่งที่ทำให้ฉันมีปัญหากับม้วนกระดาษ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/fragment_dds_review_textView_label" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Reviews:" android:textAppearance="?android:attr/textAppearanceMedium" /> <ListView …

8
HorizontalScrollView ภายใน ScrollView Touch Handling
ฉันมี ScrollView ที่ล้อมรอบเค้าโครงทั้งหมดของฉันเพื่อให้หน้าจอทั้งหมดเลื่อนได้ องค์ประกอบแรกที่ฉันมีใน ScrollView นี้คือบล็อก HorizontalScrollView ที่มีคุณสมบัติที่สามารถเลื่อนดูได้ในแนวนอน ฉันได้เพิ่มออนทัชลิสเทอร์เนอร์ใน horizontalscrollview เพื่อจัดการกิจกรรมการสัมผัสและบังคับให้มุมมอง "สแน็ป" ไปยังภาพที่ใกล้ที่สุดในเหตุการณ์ ACTION_UP ดังนั้นเอฟเฟกต์ที่ฉันจะทำก็เหมือนกับหน้าจอหลักของ Android ที่คุณสามารถเลื่อนจากหน้าจอหนึ่งไปอีกหน้าจอหนึ่งและมันจะล็อคหน้าจอเดียวเมื่อคุณยกนิ้วขึ้น ทั้งหมดนี้ใช้งานได้ดียกเว้นปัญหาเดียว: ฉันต้องกวาดนิ้วจากซ้ายไปขวาเกือบจะสมบูรณ์ในแนวนอนเพื่อให้ ACTION_UP ลงทะเบียนเลย ถ้าฉันปัดในแนวตั้งอย่างน้อยที่สุด (ซึ่งฉันคิดว่าหลายคนมักจะทำบนโทรศัพท์ของพวกเขาเมื่อปัดไปด้านข้าง) ฉันจะได้รับ ACTION_CANCEL แทนที่จะเป็น ACTION_UP ทฤษฎีของฉันคือว่าสิ่งนี้เป็นเพราะ horizontalscrollview อยู่ภายใน scrollview และ scrollview นั้นถูกไฮแจ็คแตะแนวตั้งเพื่อให้สามารถเลื่อนแนวตั้งได้ ฉันจะปิดการใช้งานกิจกรรมการสัมผัสสำหรับ scrollview จากภายใน scrollview แนวนอนของฉัน แต่ยังคงอนุญาตให้เลื่อนแนวตั้งปกติที่อื่นใน scrollview ได้อย่างไร นี่คือตัวอย่างรหัสของฉัน: public class HomeFeatureLayout extends HorizontalScrollView { private …


13
Recyclerview ภายใน ScrollView ไม่เลื่อนอย่างราบรื่น
สำหรับ app ของฉันฉันใช้RecyclerViewภายในScrollViewที่RecyclerViewมีความสูงขึ้นอยู่กับเนื้อหาของการใช้ห้องสมุดนี้ เลื่อนจะทำงาน RecyclerViewแต่ก็ไม่ได้ทำงานได้อย่างราบรื่นเมื่อฉันเลื่อนมากกว่า เมื่อฉันเลื่อนไปที่ScrollViewตัวเองมันจะเลื่อนอย่างราบรื่น รหัสที่ฉันใช้เพื่อกำหนดRecyclerView: LinearLayoutManager friendsLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext(), android.support.v7.widget.LinearLayoutManager.VERTICAL, false); mFriendsListView.setLayoutManager(friendsLayoutManager); mFriendsListView.addItemDecoration(new DividerItemDecoration(getActivity().getApplicationContext(), null)); RecyclerViewในScrollView: <android.support.v7.widget.RecyclerView android:layout_marginTop="10dp" android:layout_marginBottom="10dp" android:id="@+id/friendsList" android:layout_width="match_parent" android:layout_height="wrap_content" />


15
Android - วิธีการสร้างข้อ จำกัด เลื่อนออก?
ฉันต้องการสร้างเลย์เอาต์ที่ให้ฉันเลื่อนลงโดยใช้รูปแบบข้อ จำกัด แต่ฉันไม่รู้ว่าจะทำอย่างไร ควรScrollViewเป็นผู้ปกครองของConstraintLayoutเช่นนี้หรือไม่ <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true"> <android.support.constraint.ConstraintLayout android:id="@+id/Constraint" android:layout_width="match_parent" android:layout_height="match_parent"/> หรือวิธีอื่น ๆ บางทีใครบางคนสามารถชี้ให้ฉันเป็นแบบฝึกหัดที่ดีเกี่ยวกับเรื่องนี้หรือยกตัวอย่างฉันไม่สามารถหาได้ นอกจากนี้ฉันไม่ทราบว่านี่เป็นข้อผิดพลาดหรือการกำหนดค่าบางอย่างที่ฉันไม่ได้ตั้งค่า แต่ฉันได้เห็นภาพเช่นนี้: ที่มีส่วนประกอบบางส่วนที่อยู่นอกพิมพ์เขียว "สี่เหลี่ยมสีน้ำเงิน" แต่พวกมันสามารถมองเห็นได้ในขณะที่ด้านข้างของฉันถ้าฉันวางองค์ประกอบบน "พื้นที่สีขาว" ฉันไม่สามารถมองเห็นหรือเคลื่อนย้ายไปได้ทุกที่และปรากฏบนต้นไม้องค์ประกอบ . อัปเดต: ฉันพบวิธีที่จะทำให้การเลื่อนเลย์เอาต์ข้อ จำกัด ในเครื่องมือออกแบบโดยใช้แนวนอนเพื่อดันขอบเลย์เอาต์ของข้อ จำกัด และขยายมันเกินกว่าอุปกรณ์หลังจากนั้นคุณสามารถใช้แนวทางเป็นด้านล่างใหม่ของโครงร่างข้อ จำกัด เพื่อ ยึดส่วนประกอบ

18
ฉันสามารถเลื่อน ScrollView โดยทางโปรแกรมใน Android ได้ไหม
มีวิธีใดในการเลื่อน ScrollViewโปรแกรมไปยังตำแหน่งใดตำแหน่งหนึ่งโดยโปรแกรม? ผมได้สร้างแบบไดนามิกซึ่งถูกวางไว้ในTableLayout ScrollViewดังนั้นฉันต้องการให้มีการกระทำที่เฉพาะเจาะจง (เช่นการคลิกปุ่ม ฯลฯ ) แถวใดแถวหนึ่งควรเลื่อนไปที่ตำแหน่งบนสุดโดยอัตโนมัติ เป็นไปได้ไหม?

16
ปิดการใช้งาน ScrollView แบบเป็นโปรแกรมหรือไม่
ฉันต้องการเปิดใช้งาน ScrollView และปิดการใช้งานโดยการคลิกปุ่ม ปิดการใช้งานหมายความว่าถ้าไม่มี ScrollView .. และเปิดใช้งานจะส่งคืน ScrollView ฉันต้องการสิ่งนั้นเพราะฉันมีแกลเลอรีที่มีรูปภาพข้อความและเมื่อคลิกปุ่มการวางแนวหน้าจอจะเปลี่ยนไปดังนั้นในแนวนอนข้อความจะใหญ่ขึ้น และฉันต้องการ ScrollView เพื่อให้ภาพไม่ยืดออกและข้อความจะไม่สามารถอ่านได้ scrollview.Enabled=false / setVisibility(false) ไม่ได้ทำอะไรเลย xml: <ScrollView android:id="@+id/QuranGalleryScrollView" android:layout_height="fill_parent" android:layout_width="fill_parent"> <Gallery android:id="@+id/Gallery" android:layout_width="fill_parent" android:layout_height="fill_parent" android:scrollbars="horizontal"></Gallery> </ScrollView> ขอบคุณ แก้ไข 1: ฉันไม่สามารถใช้การมองเห็นได้ (ไปแล้ว) เนื่องจากจะซ่อนแกลเลอรีด้วยสิ่งที่ฉันต้องการคือซ่อนเอฟเฟกต์ของ ScrollView เมื่อมี ScrollView รูปภาพใน Gallery จะกลายเป็น scrollabale และไม่พอดีกับหน้าจอดังนั้นคุณต้องเลื่อนเพื่อดูภาพทั้งหมดฉันไม่ต้องการปิด / เปิดใช้งานด้วยการคลิกปุ่ม ฉันลองสิ่งนี้: ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setOnTouchListener(null); ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setHorizontalScrollBarEnabled(false); ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setVerticalScrollBarEnabled(false); ((ScrollView)findViewById(R.id.QuranGalleryScrollView)).setEnabled(false); แต่ภาพในคลังภาพยังเลื่อนได้และไม่พอดีกับหน้าจอ .. …

7
จะป้องกันไม่ให้ scrollview เลื่อนไปที่ webview หลังจากโหลดข้อมูลได้อย่างไร?
ดังนั้นฉันจึงมีปัญหาที่น่าสนใจ แม้ว่าฉันจะไม่ได้เลื่อนมุมมองด้วยตนเองหรือโดยใช้โปรแกรม แต่ WebView ของฉันจะถูกเลื่อนไปโดยอัตโนมัติหลังจากที่ข้อมูลภายในโหลดขึ้น ฉันมีส่วนใน viewpager เมื่อฉันโหลดเพจเจอร์ครั้งแรกมันทำงานตามที่คาดไว้และทุกอย่างจะปรากฏขึ้น แต่เมื่อฉัน "พลิกหน้า" ข้อมูลจะโหลดขึ้นและ WebView จะปรากฏขึ้นที่ด้านบนของหน้าโดยซ่อนมุมมองไว้ด้านบนซึ่งเป็นสิ่งที่ไม่พึงปรารถนา ไม่มีใครรู้วิธีป้องกันไม่ให้เกิดขึ้น เค้าโครงของฉันมีลักษณะดังนี้: <?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" android:background="@color/background" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/article_title" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:layout_marginBottom="2dp" android:text="Some Title" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="@color/article_title" android:textStyle="bold" /> <LinearLayout android:id="@+id/LL_Seperator" android:layout_width="fill_parent" android:layout_height="1dp" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_marginTop="5dp" …

10
เลื่อนหน้าเมื่อซอฟต์คีย์บอร์ดโผล่ขึ้นมา
ฉันมี<ScrollView>เค้าโครง: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_scrollview" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <EditText android:id="@+id/input_one" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <EditText android:id="@+id/input_two" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <EditText android:id="@+id/input_three" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center" android:inputType="number" > <Button android:id="@+id/ok_btn" android:layout_width="200dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="20dp" android:text="@string/ok_str" /> </LinearLayout> </ScrollView> ดังที่คุณเห็นด้านบนการจัดวางแบบเรียบง่ายประกอบด้วยช่องป้อนข้อมูลสามช่องและปุ่ม "ตกลง" ฉันเรียกใช้แอปด้วยเค้าโครงด้านบนเมื่อฉันแตะที่ช่องป้อนข้อมูลที่ 1 …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.