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

ViewGroup ที่จัดการโครงร่างสำหรับมุมมองย่อยที่ผู้ใช้สามารถปัดระหว่าง

4
วิธีแสดงมุมมองถัดไปใน ViewPager โดยใช้โปรแกรม
ฉันสร้าง ViewPager และทุกอย่างทำงานได้ดีอย่างไรก็ตามฉันต้องการให้มีปุ่มถัดไปก่อนหน้านี้นอก ViewPager ซึ่งสามารถใช้เพื่อนำทางภายใน ViewPager ได้ ฉันจะไปที่รายการถัดไปบน ViewPager โดยไม่ต้องปัดนิ้วเองได้อย่างไร

8
คุณสร้างหน้าจอสาธิตแบบโปร่งใสสำหรับแอป Android ได้อย่างไร
ฉันกำลังพยายามสร้างหน้าจอสาธิตแบบกึ่งโปร่งใสที่จะเปิดขึ้นเมื่อผู้ใช้ติดตั้งแอปพลิเคชันของฉันครั้งแรกเท่านั้น นี่คือตัวอย่างจากแอป Pulse News: Galaxy Nexus Nexus One แทนที่จะใช้คุณสมบัติ 'แตะเพื่อปิด' ฉันต้องการให้ผู้ใช้สามารถปัดผ่านหน้าสาธิตโปร่งใสสองสามหน้าดังกล่าวได้ สำหรับความพยายามครั้งแรกของฉันฉันแก้ไขตัวอย่างจากViewPagerIndicatorไลบรารีฉันใช้ PNG กึ่งโปร่งใสใน ImageViews ภายในส่วนของเพจเจอร์แต่ละมุมมอง จากนั้นฉันก็เปิดตัวสิ่งนี้เป็น 'กิจกรรมสาธิต' ในเมธอด onCreate ของ 'กิจกรรมหลัก' ของฉัน ปัญหา: ไม่สามารถมองเห็น 'กิจกรรมหลัก' ในพื้นหลัง แต่เป็นเพียงสีดำ ฉันลองแก้ปัญหาที่นี่แล้ว แต่ไม่สามารถแก้ไขปัญหาได้ มีแนวทางที่ดีกว่าในการสร้างสิ่งนี้หรือฉันมาถูกทางแล้ว? ฉันยังมีคำถามอื่นที่เกี่ยวข้องซึ่งขึ้นอยู่กับวิธีการใช้งาน ฉันพยายามวางซ้อนข้อความและลูกศรเพื่อให้ชี้ไปที่ส่วนประกอบ UI เฉพาะในพื้นหลัง การใช้ PNG ที่มีข้อความและลูกศรมีแนวโน้มว่าจะปรับขนาดได้ไม่เหมาะสมในอุปกรณ์ต่างๆ กล่าวคือลูกศรอาจไม่จำเป็นต้องชี้ไปที่ส่วนประกอบ UI ที่ถูกต้องในพื้นหลัง มีวิธีจัดการกับปัญหานี้ด้วยหรือไม่? ขอบคุณ! นี่คือรหัสของฉันสำหรับความพยายามครั้งแรก: DemoActivity.java public class DemoActivity extends FragmentActivity …

11
ViewPager.setOffscreenPageLimit (0) ไม่ทำงานตามที่คาดไว้
ชิ้นส่วนที่ฉันใช้ในViewPagerอินสแตนซ์ของฉันค่อนข้างใช้ทรัพยากรมากดังนั้นฉันจึงต้องการโหลดทีละชิ้นเท่านั้น เมื่อฉันลองทำสิ่งต่อไปนี้: mViewPager.setOffscreenPageLimit(0); mViewPager.setAdapter(mPagerAdapter); ฉันFragmentStatePagerAdapter.getItem(int position)ฟังก์ชั่นการแทนที่เรียกว่า 3 mViewPager.setOffscreenPageLimit(1)ครั้งซึ่งเป็นสิ่งที่เกิดขึ้นเมื่อผมเรียก ฉันคาดว่ามันจะถูกเรียกเพียงครั้งเดียวเพราะฉันระบุ 0 หน้านอกหน้าจอ ฉันเชื่อว่าฉันโทรทุกอย่างถูกต้องเพราะถ้าผมเรียกmViewPager.setOffscreenPageLimit(2), FragmentStatePagerAdapter.getItem(int position)เรียกว่า 5 ครั้งเท่าที่ผมจะคาดหวัง ViewPager ต้องการเพจออฟสกรีนอย่างน้อย 1 เพจหรือว่าฉันทำอะไรผิดที่นี่?

13
Fragment ใน ViewPager โดยใช้ FragmentPagerAdapter จะว่างเปล่าในครั้งที่สองที่ดู
ฉันมีอินเทอร์เฟซแฟรกเมนต์พร้อมแท็บที่ด้านล่างซึ่งเปิดส่วนต่างๆในมุมมองหลัก ฉันมีส่วนหนึ่งโดยเฉพาะซึ่งเป็นรายการของรายการ หากผู้ใช้เลือกรายการใดรายการหนึ่งในรายการนี้ส่วนอื่นจะเปิดขึ้นซึ่งมี viewpager ซึ่งเลื่อนตามแนวนอนระหว่างรายการทั้งหมดในรายการในส่วนก่อนหน้า ใช้งานได้ดี viewpager ใช้ FragmentPagerAdapter เพื่อแสดงรายการ ปัญหาเกิดขึ้นเมื่อผู้ใช้เลือกรายการในรายการดูรายการจากนั้นกดปุ่มบนแถบแท็บเพื่อกลับไปที่รายการจากนั้นเลือกรายการอื่น ครั้งที่สองที่เลือกรายการหน้าจอว่างจะปรากฏขึ้นแทน viewpager ฉันไม่ได้รับข้อผิดพลาดใน LogCat ของฉันเมื่อสิ่งนี้เกิดขึ้น เหตุใด viewpager จึงปรากฏในครั้งแรกเท่านั้น FragmentPagerAdapter: public class ViewPagerAdapter extends FragmentPagerAdapter { Cursor mCursor; public ViewPagerAdapter(FragmentManager fm, Cursor c) { super(fm); mCursor = c; } public void changeCursor(Cursor c) { mCursor = c; this.notifyDataSetChanged(); } @Override …

9
SwipeRefreshLayout + ViewPager จำกัด การเลื่อนในแนวนอนเท่านั้นหรือไม่
ฉันใช้งานSwipeRefreshLayoutแล้วและViewPagerในแอปของฉัน แต่มีปัญหาใหญ่เมื่อใดก็ตามที่ฉันจะปัดไปทางซ้าย / ขวาเพื่อสลับไปมาระหว่างหน้าการเลื่อนนั้นไวเกินไป การปัดลงเล็กน้อยจะทำให้เกิดการSwipeRefreshLayoutรีเฟรชด้วย ฉันต้องการตั้งค่าขีด จำกัด เมื่อเริ่มการปัดในแนวนอนจากนั้นบังคับแนวนอนเท่านั้นจนกว่าการปัดจะสิ้นสุด กล่าวอีกนัยหนึ่งคือฉันต้องการยกเลิกการปัดในแนวตั้งเมื่อนิ้วเคลื่อนที่ในแนวนอน ปัญหานี้จะเกิดขึ้นก็ต่อViewPagerเมื่อฉันปัดลงและSwipeRefreshLayoutฟังก์ชันรีเฟรชถูกเรียกใช้ (แถบจะแสดงขึ้น) จากนั้นฉันเลื่อนนิ้วในแนวนอนก็ยังอนุญาตให้ใช้การกวาดนิ้วในแนวตั้งเท่านั้น ฉันพยายามขยายViewPagerชั้นเรียน แต่ไม่ได้ผลเลย: public class CustomViewPager extends ViewPager { public CustomViewPager(Context ctx, AttributeSet attrs) { super(ctx, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { boolean in = super.onInterceptTouchEvent(ev); if (in) { getParent().requestDisallowInterceptTouchEvent(true); this.requestDisallowInterceptTouchEvent(true); } return false; } } xml …

9
ViewPager พร้อม Google Maps API v2: มุมมองสีดำลึกลับ
ฉันได้รวมส่วนใหม่ของ google maps api v2 ไว้ในมุมมองเพจเจอร์ เมื่อเลื่อนจากส่วนแผนที่มุมมองสีดำจะซ้อนทับส่วนที่อยู่ติดกัน มีใครแก้บ้าง? แก้ไข: ภาพหน้าจอ public static class PagerAdapter extends FragmentPagerAdapter{ public PagerAdapter(FragmentManager fm) { super(fm); } @Override public int getCount() { return NUM_ITEMS; } @Override public Fragment getItem(int position) { Fragment pageFragment; switch (position) { case 0: pageFragment = new TabAFragment(); break; case 1: …

9
ViewPager ภายใน ScrollView ไม่เลื่อน Correclty
ฉันมี 'เพจ' ที่มีส่วนประกอบจำนวนหนึ่งและเนื้อหาของใครยาวเกินความสูงของอุปกรณ์ ดีเพียงวางเค้าโครงทั้งหมด (ทั้งหน้า) ไว้ใน a ScrollViewก็ไม่มีปัญหา หนึ่งในส่วนประกอบคือไฟล์ViewPager. สิ่งนี้แสดงผลได้อย่างถูกต้อง แต่การตอบสนองต่อการปัด / ปัดทำงานไม่ถูกต้องมันกระวนกระวายใจและไม่ได้ผลเสมอไป ดูเหมือนว่าจะ 'สับสน' กับสิ่งScrollViewนี้ดังนั้นจึงใช้ได้ 100% เมื่อคุณพุ่งไปในเส้นแนวนอนเท่านั้น หากฉันลบออกScrollViewViewPager จะตอบสนองอย่างสมบูรณ์ ฉันได้ค้นหารอบ ๆ และไม่พบว่านี่เป็นข้อบกพร่องที่ทราบ มีใครมีประสบการณ์นี้อีกบ้าง? เวอร์ชันแพลตฟอร์ม: 1.6.2 ไลบรารีที่เข้ากันได้ v4.2 อุปกรณ์: HTC Incredible S. ด้านล่างนี้เป็นโค้ดตัวอย่างเพื่อให้คุณทดสอบแสดงความคิดเห็นScrollViewเพื่อดูว่าทำงานได้อย่างถูกต้อง กิจกรรม: package com.ss.activities; import com.ss.R; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.os.Parcelable; import android.support.v4.view.PagerAdapter; …

13
ViewPager ไม่ได้วาดเนื้อหาใหม่ แต่ยังคง / ว่างเปล่า
เรากำลังประสบปัญหาแปลก ๆ กับ ViewPager ที่นี่ เราฝังรายการในแต่ละหน้า ViewPager และทริกเกอร์ alertDataSetChanged ทั้งบนอะแดปเตอร์รายการและอะแดปเตอร์เพจเจอร์มุมมองเมื่ออัปเดตข้อมูลรายการ สิ่งที่เราสังเกตได้คือบางครั้งเพจไม่อัปเดตทรีมุมมองกล่าวคือยังคงว่างเปล่าหรือบางครั้งก็หายไปเมื่อเพจไปที่เพจ เมื่อเพจไปมาสองสามครั้งเนื้อหาจะปรากฏขึ้นอีกครั้ง ดูเหมือนว่า Android จะไม่มีการอัปเดตมุมมองที่นี่ ฉันยังสังเกตเห็นว่าเมื่อทำการดีบักด้วยโปรแกรมดูลำดับชั้นการเลือกมุมมองจะทำให้มุมมองนั้นปรากฏขึ้นอีกครั้งเสมอเพราะตัวแสดงลำดับชั้นบังคับให้มุมมองที่เลือกวาดใหม่ ฉันไม่สามารถทำงานนี้โดยใช้โปรแกรมได้ การทำให้มุมมองรายการเป็นโมฆะหรือเพจเจอร์มุมมองทั้งหมดแม้จะไม่มีผลใด ๆ นี่คือกับไลบรารีความเข้ากันได้ -v4_r7 ฉันยังพยายามใช้การแก้ไขล่าสุดเนื่องจากอ้างว่าสามารถแก้ไขปัญหาหลายอย่างที่เกี่ยวข้องกับการดูเพจเจอร์ได้ แต่มันกลับทำให้เรื่องแย่ลงไปอีก (เช่นท่าทางจะใช้งานไม่ได้เพื่อที่บางครั้งจะไม่ยอมให้ฉันดูเพจทั้งหมดอีกต่อไป) มีใครกำลังประสบปัญหาเหล่านี้ด้วยหรือคุณมีความคิดว่าอะไรเป็นสาเหตุของปัญหานี้

4
การรับตำแหน่งปัจจุบันของ ViewPager
ฉันรู้ว่ามีวิดเจ็ตแกลเลอรีฉันสามารถใช้ getSelectedItemPosition (); เพื่อดึงตำแหน่งปัจจุบัน แต่ดูเหมือนว่า ViewPager จะไม่มี ฉันรู้ว่าฉันสามารถตั้งค่าผู้ฟังและเรียกข้อมูลตำแหน่งได้เมื่อเปลี่ยนหน้า แต่ฉันต้องการตำแหน่งมุมมองปัจจุบัน

8
คุณจะได้รับหมายเลขหน้าปัจจุบันของ ViewPager สำหรับ Android ได้อย่างไร
ฉันต้องการทราบตำแหน่งหน้าปัจจุบันของไฟล์ViewPager. ฉันสร้างอะแดปเตอร์และตั้งค่าอะแดปเตอร์นี้เป็นไฟล์ViewPager. ตอนนี้ฉันต้องการทราบหมายเลขหน้าปัจจุบันหรือตำแหน่งของมุมมองปัจจุบันเพราะฉันต้องการเริ่มเหตุการณ์พิเศษบางอย่างในหน้านั้น ฉันใช้viewPager.setCurrentItem(1);สำหรับการตั้งค่ารายการแรก มีวิธีที่คล้ายกันในการรับหน้าปัจจุบันหรือไม่?

2
วิธีใช้ Dagger 2 เพื่อ Inject ViewModel ของ Fragments ที่เหมือนกันภายใน ViewPager
ฉันกำลังพยายามเพิ่ม Dagger 2 ในโครงการของฉัน ฉันสามารถฉีด ViewModels (ส่วนประกอบ AndroidX Architecture) สำหรับชิ้นส่วนของฉัน ฉันมีViewPager ซึ่งมี 2 อินสแตนซ์ของแฟรกเมนต์เดียวกัน (เฉพาะการเปลี่ยนแปลงเล็กน้อยสำหรับแต่ละแท็บ) และในแต่ละแท็บฉันกำลังเฝ้าดูLiveDataเพื่อรับการอัปเดตเกี่ยวกับการเปลี่ยนแปลงข้อมูล (จาก API) ปัญหาคือเมื่อการตอบสนอง api มาและอัปเดตLiveDataข้อมูลเดียวกันในส่วนที่มองเห็นได้ในปัจจุบันจะถูกส่งไปยังผู้สังเกตการณ์ในแท็บทั้งหมด (ฉันคิดว่านี่อาจเป็นเพราะขอบเขตของViewModel) นี่คือวิธีที่ฉันสังเกตข้อมูลของฉัน: override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) activityViewModel.expenseList.observe(this, Observer { swipeToRefreshLayout.isRefreshing = false viewAdapter.setData(it) }) .... } ฉันใช้คลาสนี้ในการจัดหาViewModels: class ViewModelProviderFactory @Inject constructor(creators: MutableMap<Class<out ViewModel?>?, Provider<ViewModel?>?>?) : ViewModelProvider.Factory { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.