Android 碎片画廊
我试图实现一个画廊,每个细胞都是一个片段 gallery_item.xml:Android 碎片画廊,android,android-fragments,android-gallery,Android,Android Fragments,Android Gallery,我试图实现一个画廊,每个细胞都是一个片段 gallery_item.xml: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/cardContainer" android:layout_width="match_parent" android:layout_height="
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cardContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/img1" />
它正在工作,但问题是gallery在无限循环中调用了getView()
这看起来像一个onMeasure问题,下面是堆栈:
Thread [<1> main] (Suspended (breakpoint at line 62 in GalleryAdapter3))
GalleryAdapter3.getView(int, View, ViewGroup) line: 62
Gallery(AbsSpinner).onMeasure(int, int) line: 193
Gallery(View).measure(int, int) line: 15518
RelativeLayout.measureChildHorizontal(View, RelativeLayout$LayoutParams, int, int) line: 681
RelativeLayout.onMeasure(int, int) line: 461
RelativeLayout(View).measure(int, int) line: 15518
FrameLayout(ViewGroup).measureChildWithMargins(View, int, int, int, int) line: 4825
FrameLayout.onMeasure(int, int) line: 310
FrameLayout(View).measure(int, int) line: 15518
LinearLayout.measureVertical(int, int) line: 847
LinearLayout.onMeasure(int, int) line: 588
LinearLayout(View).measure(int, int) line: 15518
PhoneWindow$DecorView(ViewGroup).measureChildWithMargins(View, int, int, int, int) line: 4825
PhoneWindow$DecorView(FrameLayout).onMeasure(int, int) line: 310
PhoneWindow$DecorView.onMeasure(int, int) line: 2176
PhoneWindow$DecorView(View).measure(int, int) line: 15518
ViewRootImpl.performMeasure(int, int) line: 1874
ViewRootImpl.measureHierarchy(View, WindowManager$LayoutParams, Resources, int, int) line: 1089
ViewRootImpl.performTraversals() line: 1265
ViewRootImpl.doTraversal() line: 989
ViewRootImpl$TraversalRunnable.run() line: 4351
Choreographer$CallbackRecord.run(long) line: 749
Choreographer.doCallbacks(int, long) line: 562
Choreographer.doFrame(long, int) line: 532
Choreographer$FrameDisplayEventReceiver.run() line: 735
Handler.handleCallback(Message) line: 725
Choreographer$FrameHandler(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 137
ActivityThread.main(String[]) line: 5041
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 511
ZygoteInit$MethodAndArgsCaller.run() line: 793
ZygoteInit.main(String[]) line: 560
NativeStart.main(String[]) line: not available [native method]
Thread[main](挂起(GalleryAdapter3中第62行的断点))
GalleryAdapter3.getView(int、View、ViewGroup)行:62
画廊(AbsSpinner)。在线测量(int,int)线:193
画廊(视图)。测量(内部,内部)线:15518
RelativeLayout.measureChildHorizontal(视图,RelativeLayout$LayoutParams,int,int)行:681
相对测量(int,int)行:461
相对长度(视图)。测量(整数,整数)行:15518
FrameLayout(视图组)。带边距的measureChildWithMargins(视图,int,int,int,int)行:4825
FrameLayout.onMeasure(int,int)行:310
框架布局(视图)。测量(整数,整数)线:15518
线性布局。测量垂直(int,int)线:847
线性布局。在线测量(int,int)行:588
线性布局(视图)。测量(整数,整数)线:15518
PhoneWindow$DecorView(视图组)。带页边距(视图、整型、整型、整型、整型)的度量ILD行:4825
PhoneWindow$DecorView(FrameLayout).onMeasure(int,int)行:310
电话窗口$DecorView.onMeasure(int,int)行:2176
PhoneWindow$DecorView(视图)。度量(int,int)行:15518
ViewRootImpl.performMeasure(int,int)行:1874
ViewRootImpl.measureHierarchy(视图,WindowManager$LayoutParams,Resources,int,int)行:1089
ViewRootImpl.performTraversals()行:1265
ViewRootImpl.doTraversal()行:989
ViewRootImpl$TraversalRunnable.run()行:4351
编舞$CallbackRecord.run(长)行:749
编舞。doCallbacks(int,long)行:562
编舞。doFrame(长,int)行:532
Choreographer$FrameDisplayEventReceiver.run()行:735
Handler.handleCallback(消息)行:725
Choreographer$FrameHandler(处理程序)。dispatchMessage(消息)行:92
Looper.loop()行:137
ActivityThread.main(字符串[])行:5041
invokenactive(Object,Object[],Class,Class[],Class,int,boolean)行:不可用[本机方法]
调用(对象,对象…)行:511
ZygoteInit$MethodAndArgsCaller.run()行:793
颧骨单位。主(字符串[])行:560
NativeStart.main(字符串[])行:不可用[本机方法]
10倍多 单列GridView可以用作图库替代品片段在循环使用它们的视图中不能用作子级。我建议您重新考虑当前的逻辑,避免将片段用作该图库的子项(您也应该避免,因为它已被弃用)。10x@Luksprog。我知道图库已被弃用,但仍然无法找到任何替代图库效果的方法,从左到右显示部分项目,你有什么建议吗?不幸的是,我不知道有哪家图书馆可以作为画廊的替代品。
Thread [<1> main] (Suspended (breakpoint at line 62 in GalleryAdapter3))
GalleryAdapter3.getView(int, View, ViewGroup) line: 62
Gallery(AbsSpinner).onMeasure(int, int) line: 193
Gallery(View).measure(int, int) line: 15518
RelativeLayout.measureChildHorizontal(View, RelativeLayout$LayoutParams, int, int) line: 681
RelativeLayout.onMeasure(int, int) line: 461
RelativeLayout(View).measure(int, int) line: 15518
FrameLayout(ViewGroup).measureChildWithMargins(View, int, int, int, int) line: 4825
FrameLayout.onMeasure(int, int) line: 310
FrameLayout(View).measure(int, int) line: 15518
LinearLayout.measureVertical(int, int) line: 847
LinearLayout.onMeasure(int, int) line: 588
LinearLayout(View).measure(int, int) line: 15518
PhoneWindow$DecorView(ViewGroup).measureChildWithMargins(View, int, int, int, int) line: 4825
PhoneWindow$DecorView(FrameLayout).onMeasure(int, int) line: 310
PhoneWindow$DecorView.onMeasure(int, int) line: 2176
PhoneWindow$DecorView(View).measure(int, int) line: 15518
ViewRootImpl.performMeasure(int, int) line: 1874
ViewRootImpl.measureHierarchy(View, WindowManager$LayoutParams, Resources, int, int) line: 1089
ViewRootImpl.performTraversals() line: 1265
ViewRootImpl.doTraversal() line: 989
ViewRootImpl$TraversalRunnable.run() line: 4351
Choreographer$CallbackRecord.run(long) line: 749
Choreographer.doCallbacks(int, long) line: 562
Choreographer.doFrame(long, int) line: 532
Choreographer$FrameDisplayEventReceiver.run() line: 735
Handler.handleCallback(Message) line: 725
Choreographer$FrameHandler(Handler).dispatchMessage(Message) line: 92
Looper.loop() line: 137
ActivityThread.main(String[]) line: 5041
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 511
ZygoteInit$MethodAndArgsCaller.run() line: 793
ZygoteInit.main(String[]) line: 560
NativeStart.main(String[]) line: not available [native method]