[英]How can I change view in Fragment which is contained ViewPager?
我正在使用ViewPager
和TabLayout
。 而且ViewPager由4個片段組成(例如,我稱這些片段的名稱為1、2、3、4)。 我的2(第二個片段)有一個ListView
,如果我單擊一個列表項,則將2(第二個片段)更改為另一個視圖。 當時,另一個視圖不是1、3或4。 That is a new view
。
目的是確定董事會的category
(例如運動足球中場)。 因此,當我選擇運動項目時,視圖將顯示另一個列表項(例如足球,棒球,籃球等)。 該類別將包含3個步驟。 因此,我將准備2(第二個片段)的第二個和第三個視圖。 但我不知道如何更改視圖或片段。 我在Google中找到了解決此問題的線索。
那是
FragmentManager fm = getFragmentManager();
FragmentTransaction fmt = fm.beginTransaction();
View2 v2 = new View2(); // View2 is another view
fmt.replace(R.id.view1, v2);
fmt.commit();
我使用了該代碼,它成功地更改了視圖。 但是只有一部分觀點被改變了。 問題是什么? 我該如何解決?
這是第二個片段的照片
這是單擊列表項時的視圖。 僅有一部分視圖被更改。
(我不能直接附上圖片,所以請有人幫忙^^)
這是我的第二段代碼。
public class MatchingFragment extends Fragment {
View2 v2;
@Override
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.matching_fragment, container, false);
final MatchingListViewAdapter adapter = new MatchingListViewAdapter();
ListView listView = (ListView) view.findViewById(R.id.matching_list1);
listView.setAdapter(adapter);
adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.lock), "LOCK", "This is lock icon");
adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.setup), "SETUP", "This is setup icon");
adapter.addItem(ContextCompat.getDrawable(getActivity(), R.drawable.user), "USER", "This is user icon");
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
FragmentManager fm = getFragmentManager();
FragmentTransaction fmt = fm.beginTransaction();
v2 = new View2();
fmt.replace(R.id.view1, v2);
fmt.commit();
adapter.notifyDataSetChanged();
}
});
return view;
}
}
謝謝。
我認為您需要在單擊列表視圖上的項目時開始一項活動。 因為如果您用viewpager替換新片段,那么如何返回上一個片段。 以及為什么創建View2()對象,其目的是什么?
如果要用viewpager替換片段,請使用此代碼,不要用viewpager替換viewpager
Fragment fragment = new FragmentOne();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.view, fragment);
ft.commit();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.