aspsine / fragmentnavigator Goto Github PK
View Code? Open in Web Editor NEWAn useful fragment navigator
An useful fragment navigator
这个和 fragmentTabhost 有什么区别?
Hi, am having difficulty refreshing one of my child fragments whenever I go back to it...I have a group of images that I are placing in say 'Contacts Fragment' (with tabs). If I then click on 'Circle Fragment' and delete some images, then go back to 'Contacts' it is still the same->old images present...How can I have it that the view refreshes ? What am I missing...
This is the Fragment...
public class ImageGalleryFragment extends Fragment implements ImageGalleryAdapter.OnImageClickListener, ImageGalleryAdapter.ImageThumbnailLoader {`
// region Constructors
public ImageGalleryFragment() {
}
// endregion
// region Factory Methods
public static ImageGalleryFragment newInstance(Bundle extras) {
ImageGalleryFragment fragment = new ImageGalleryFragment();
fragment.setArguments(extras);
return fragment;
}
// region Lifecycle Methods
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
images = getArguments().getStringArrayList(KEY_IMAGES);
names = getArguments().getStringArrayList(KEY_NAME);
title = getArguments().getString(KEY_TITLE);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_image_gallery, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
recyclerView = (RecyclerView) view.findViewById(R.id.rv);
setUpRecyclerView();
}
@Override
public void onResume() {
super.onResume();
setUpRecyclerView();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
recyclerView.removeItemDecoration(gridSpacesItemDecoration);
setUpRecyclerView();
}
@Override
public void onImageClick(int position) {
Intent intent = new Intent(getContext(), FullScreenImageGalleryActivity.class);
Bundle bundle = new Bundle();
bundle.putStringArrayList(FullScreenImageGalleryActivity.KEY_IMAGES, images);
bundle.putStringArrayList(FullScreenImageGalleryActivity.KEY_NAME, names);
bundle.putInt(FullScreenImageGalleryActivity.KEY_POSITION, position);
intent.putExtras(bundle);
startActivity(intent);
}
// region ImageGalleryAdapter.ImageThumbnailLoader Methods
@Override
public void loadImageThumbnail(ImageView iv, String imageUrl, int dimension) {
imageThumbnailLoader.loadImageThumbnail(iv, imageUrl, dimension);
}
// endregion
// region Helper Methods
private void setUpRecyclerView() {
int numOfColumns;
if (ImageGalleryUtils.isInLandscapeMode(getActivity())) {
numOfColumns = 4;
} else {
numOfColumns = 3;
}
MainActivity.stage = 1;
recyclerView.setLayoutManager(new GridLayoutManager(getContext(), numOfColumns));
gridSpacesItemDecoration = new GridSpacesItemDecoration(ImageGalleryUtils.dp2px(getActivity(), 2), numOfColumns);
recyclerView.addItemDecoration(gridSpacesItemDecoration);
imageGalleryAdapter = new ImageGalleryAdapter(images);
imageGalleryAdapter.setOnImageClickListener(this);
imageGalleryAdapter.setImageThumbnailLoader(this);
recyclerView.setAdapter(imageGalleryAdapter);
}
public static void setImageThumbnailLoader(ImageGalleryAdapter.ImageThumbnailLoader loader) {
imageThumbnailLoader = loader;
}
ChildFragmentAdapter
public class ChildFragmentAdapter implements FragmentNavigatorAdapter {
public static final String[] TABS = {"This Week", "This Month", "All Time"};
@Override
public Fragment onCreateFragment(int position) {
Bundle bundle = Utils.fullDatabase();
Bundle todayDatabase = Utils.todayDatabase();
Bundle weekDatabase = Utils.WeekDatabase();
if (position == 0) {
return ImageGalleryFragment.newInstance(todayDatabase);
} else if (position == 1) {
return ImageGalleryFragment.newInstance(weekDatabase);
} else {
return ImageGalleryFragment.newInstance(bundle);
}
}
P.S Thanks for this exceptional library
hey how to change icon bottom give me solution
和demo用的方式一样,但是有时候bugly 上边就报这个异常:
#8309 java.lang.IllegalStateException
Fragment already added: FragmentYiFan{1db2378e #4 id=0x7f0900cd 1MainActivity}
android.support.v4.app.FragmentManagerImpl.addFragment(Unknown Source)
如果开发者的 Fragment 想要实现懒加载,需要 FragmentNavigatorAdapter
去调用 setUserVisibleHint
这个方法
你好,打扰一下.我是小白想问一下
这个可以配合 RadioButton 的点击来实现切换和保存 fragment 的状态么?
I cloned the repo and added a button in contacts fragment to add a child fragment inside. My purpose was trying to test what happened when back button was tapped. Instead of popping out the newly created child fragment, and display the "parent" contacts fragment, tapping back just closes the app.
Is there any way to handle this situation?
你好,
显示和隐藏fragment,是用add,show好一点还是detach,attach好一点?
resetFragments重置的时候我有个问题想请教
被重置的Bfragment,里面有成员变量int b,
重置前成员变量 b = 2;
重置后成员变量b = 2;
重置后成员变量为什么不是初始化状态?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.