divider設定のダイアログフラグメントで拡張可能リストビューを拡張したときにアプリがクラッシュする理由を理解できません。 Android 6.0でのみ発生します。 Android 4.2では問題ありません。ダイアログフラグメントのandroid:expandable listビューのdivider属性がAndroid 6.01で私のアプリケーションをクラッシュさせます
expandablelistview.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/filter_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/scroll_layout"
android:background="#fff"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<ExpandableListView
android:id="@+id/expandable_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="@color/primaryLight"
android:dividerHeight="5dp"/>
</LinearLayout>
パート:
@Override
public void onViewCreated(final View view, @Nullable Bundle savedInstanceState) {
if(savedInstanceState == null) {
final Context context = getActivity();
Bundle bundle = getArguments();
Map<String, List<FilterItem>> listCollection = (Map<String, List<FilterItem>>) bundle.getSerializable(DATA);
List<String> groupList = (List<String>) bundle.getSerializable(GROUP);
ExpandableListView expListView = (ExpandableListView) view.findViewById(R.id.expandable_list);
final ExpandableListAdapter expListAdapter = new ExpandableListAdapter(context, groupList, listCollection);
expListView.setAdapter(expListAdapter);
expListView.expandGroup(0);
}
}
は私がクラッシュがXMLで分周器の設定によって引き起こされていると思います。エラーの一部がsetBounds(android.graphics.Rect)
で失敗したことを言うので、私はそれが分周器とは何かを持っていると思います:
android:divider="@color/primaryLight"
android:dividerHeight="5dp"
ダイアログフラグメントはこの2行が削除された場合に開くことができます。
ログ:あなたが上ExpandableListViewあなたのコードのクラッシュのソースコードを見ることができるように
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.graphics.drawable.Drawable.setBounds(android.graphics.Rect)' on a null object reference
at android.widget.ExpandableListView.drawDivider(ExpandableListView.java:534)
at android.widget.ListView.dispatchDraw(ListView.java:3335)
at android.widget.ExpandableListView.dispatchDraw(ExpandableListView.java:351)
at android.view.View.draw(View.java:16187)
at android.widget.AbsListView.draw(AbsListView.java:4166)
at android.view.View.updateDisplayListIfDirty(View.java:15180)
at android.view.View.draw(View.java:15954)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16187)
at android.view.View.updateDisplayListIfDirty(View.java:15180)
at android.view.View.draw(View.java:15954)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15175)
at android.view.View.draw(View.java:15954)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.updateDisplayListIfDirty(View.java:15175)
at android.view.View.draw(View.java:15954)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16187)
at com.android.internal.policy.PhoneWindow$DecorView.draw(PhoneWindow.java:2690)
at android.view.View.updateDisplayListIfDirty(View.java:15180)
at android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:281)
at android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:287)
at android.view.ThreadedRenderer.draw(ThreadedRenderer.java:322)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:2623)
at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2442)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2075)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1115)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6023)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5422)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)