得到碎片的容器查看我覺得有訪問視圖,而不是使用
((ViewGroup) getView().getParent()).getId()
我會假設你使用的是呈現一個MainActivity工作的更標準的方法列表片段,然後可以在單擊項目時顯示另一個列表片段,等等。我假設您已選擇將MainActivity的主視圖替換爲您呈現的列表片段的內容。
因爲每個列表片段都在MainActivity中承載,所以您始終可以訪問MainActivity的視圖。
// Inside of onListItemClick...
FragmentManager fm = getFragmentManager();
Fragment fragment = new MyOtherListFragment();
FrameLayout contentView = (FrameLayout) getActivity().findViewById(R.id.content_view);
fm.beginTransaction()
.replace(contentView.getId(), fragment)
.addToBackStack(null)
.commit();
上面的例子假設你有你在MainActivity設置XML佈局資源,調用XML資源R.layout.activity_main,那裏有一個id R.id.content_view一個FrameLayout裏。這是我採取的方法。我在這裏展示的例子是我實際在我的應用程序中編寫的一個簡單版本。
順便說一句,我的版本的IntelliJ的(1.0.1版本)警告我說,
((ViewGroup) getView().getParent)
可能會拋出一個NullPointerException。
它給我null任何想法,當我嘗試說LinearLayout x =(LinearLayout)((ViewGroup)getView()時,我有主屏幕包含佈局,我用作父級的佈局。getParent());在片段類中被調用,但它總是爲空 – AMH
工作就像一個魅力,謝謝你爲我節省了時間 –