在我的应用中,我有一个活动,可以显示列表或几个空视图之一(加载,登录,错误等)
我正在寻找这样的事情:
public static class MultipleViewSwitcher {
private final ArrayList<View> mViews;
MultipleViewSwitcher(Activity activity, int... viewIds) {
mViews = new ArrayList<>(viewIds.length);
for (int id: viewIds) {
mViews.add(activity.findViewById(id));
}
}
public void showView(int viewId) {
for (View view: mViews) {
view.setVisibility(view.getId() == viewId ? View.VISIBLE : View.GONE);
}
}
}
ViewFlipper似乎有点过分,因为我不需要特殊的动画。 是否有任何原生组件可以做到?
答案 0 :(得分:0)
稍微重写您的代码,以便您不必遍历所有视图
public static class MultipleViewSwitcher {
private final HashMap<Integer, View> mViews;
private int currentView = -1;
MultipleViewSwitcher(Activity activity, int... viewIds) {
mViews = new HashMap<>();
for (int id: viewIds) {
mViews.put(id, activity.findViewById(id));
}
}
public void showView(int viewId) {
if (currentView != viewId) {
if (currentView != -1)
mViews.get(currentView).setVisibility(View.GONE);
mViews.get(viewId).setVisibility(View.VISIBLE);
currentView = viewId;
}
}
}