bauerca / drag-sort-listview

Android ListView with drag and drop reordering.
3.2k stars 1.44k forks source link

Problem when integrating DSLV as a page of a viewPager #97

Closed amuse38 closed 11 years ago

amuse38 commented 11 years ago

Hello,

I have a fragment A that manages a viewPager. Each page is generated as an instance of fragment B.

Here is the layout used by fragment B: <?xml version="1.0" encoding="utf-8"?> <com.mobeta.android.dslv.DragSortListView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dslv="http://schemas.android.com/apk/lib/com.mobeta.android.dslv_drag-sort-listview_apklib_0.6.0-SNAPSHOT" android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp" android:dividerHeight="5dp" android:paddingBottom="0dp" android:paddingLeft="10dp" android:paddingTop="0dp" dslv:collapsed_height="2dp" dslv:drag_scroll_start="0.33" dslv:float_alpha="0.6" dslv:max_drag_scroll_speed="0.5" dslv:slide_shuffle_speed="0.3" dslv:use_default_controller="false" />

When inflating the XML in fragment B, the following exception is raised: 04-09 16:07:20.898: E/Easy Travel(9900): class test.myapp.app.ui.fragment.MyFragment.onCreateView: android.view.InflateException: Binary XML file line #2: Error inflating class 04-09 16:07:20.898: W/System.err(9900): android.view.InflateException: Binary XML file line #2: Error inflating class 04-09 16:07:20.938: W/System.err(9900): at android.view.LayoutInflater.createView(LayoutInflater.java:606) 04-09 16:07:20.938: W/System.err(9900): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680) 04-09 16:07:20.938: W/System.err(9900): at android.view.LayoutInflater.inflate(LayoutInflater.java:466) 04-09 16:07:20.938: W/System.err(9900): at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 04-09 16:07:20.938: W/System.err(9900): at test.myapp.app.ui.fragment.MyFragment.onCreateView(MyFragment.java:125) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.java:461) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:163) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.view.ViewPager.populate(ViewPager.java:1012) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.view.ViewPager.populate(ViewPager.java:881) 04-09 16:07:20.938: W/System.err(9900): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1366) 04-09 16:07:20.938: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.938: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.938: W/System.err(9900): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 04-09 16:07:20.938: W/System.err(9900): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660) 04-09 16:07:20.938: W/System.err(9900): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553) 04-09 16:07:20.938: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.938: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.948: W/System.err(9900): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 04-09 16:07:20.948: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.948: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.948: W/System.err(9900): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369) 04-09 16:07:20.948: W/System.err(9900): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1017) 04-09 16:07:20.948: W/System.err(9900): at android.widget.LinearLayout.onMeasure(LinearLayout.java:555) 04-09 16:07:20.948: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.958: W/System.err(9900): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1196) 04-09 16:07:20.958: W/System.err(9900): at android.widget.LinearLayout.onMeasure(LinearLayout.java:555) 04-09 16:07:20.958: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.958: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.958: W/System.err(9900): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 04-09 16:07:20.958: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.958: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.958: W/System.err(9900): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 04-09 16:07:20.968: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.968: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.968: W/System.err(9900): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 04-09 16:07:20.968: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.968: W/System.err(9900): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4706) 04-09 16:07:20.978: W/System.err(9900): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293) 04-09 16:07:20.988: W/System.err(9900): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2163) 04-09 16:07:20.988: W/System.err(9900): at android.view.View.measure(View.java:13011) 04-09 16:07:20.988: W/System.err(9900): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1091) 04-09 16:07:20.988: W/System.err(9900): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2505) 04-09 16:07:20.988: W/System.err(9900): at android.os.Handler.dispatchMessage(Handler.java:99) 04-09 16:07:20.988: W/System.err(9900): at android.os.Looper.loop(Looper.java:154) 04-09 16:07:20.988: W/System.err(9900): at android.app.ActivityThread.main(ActivityThread.java:4945) 04-09 16:07:20.988: W/System.err(9900): at java.lang.reflect.Method.invokeNative(Native Method) 04-09 16:07:20.988: W/System.err(9900): at java.lang.reflect.Method.invoke(Method.java:511) 04-09 16:07:20.988: W/System.err(9900): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-09 16:07:20.998: W/System.err(9900): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-09 16:07:20.998: W/System.err(9900): at dalvik.system.NativeStart.main(Native Method) 04-09 16:07:20.998: W/System.err(9900): Caused by: java.lang.reflect.InvocationTargetException 04-09 16:07:21.008: W/System.err(9900): at java.lang.reflect.Constructor.constructNative(Native Method) 04-09 16:07:21.008: W/System.err(9900): at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 04-09 16:07:21.008: W/System.err(9900): at android.view.LayoutInflater.createView(LayoutInflater.java:586) 04-09 16:07:21.008: W/System.err(9900): ... 54 more 04-09 16:07:21.008: W/System.err(9900): Caused by: java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x1 04-09 16:07:21.048: W/System.err(9900): at android.content.res.TypedArray.getDimensionPixelSize(TypedArray.java:463) ------------------------------------ THE ERROR ---------------------------------------------- 04-09 16:07:21.048: W/System.err(9900): at com.mobeta.android.dslv.DragSortListView.(DragSortListView.java:452) 04-09 16:07:21.048: W/System.err(9900): ... 57 more

If removing the parameter "collapsed_height" in the XML, the same error occurs at lin 463 (in charge of managing the parameter "float_alpha").

If I replace the DragSortListView by a common ListView in the XML, everything works well.

Any help would be greatly appreciated as I'm running out of ideas ;););)

Best regards and congratulation for this beautiful component !!!

Alain

PS: I have an other activity that uses a DSLV that is not included in a viewPager and everything works fine !

bauerca commented 11 years ago

The following is wrong:

xmlns:dslv="http://schemas.android.com/apk/lib/com.mobeta.android.dslv_drag-sort-listview_apklib_0.6.0-SNAPSHOT"

Instead, use

xmlns:dslv="http://schemas.android.com/apk/res-auto"

as described on stackoverflow

amuse38 commented 11 years ago

Thank you !