如何根据条件显示布局?

时间:2018-05-07 09:07:10

标签: android android-layout

我有element来自JSON文件的名为viewtype的1,2,3 ....我根据viewtype得到了不同的数据。现在在onCreate我需要根据viewtype显示布局。我怎样才能做到这一点?基于ifCondition,是否可以这样做。

1 个答案:

答案 0 :(得分:1)

在创建您的活动或片段时,只需在您的视图类型上创建条件,并为您想要的布局充气。

这个例子将更具说明性:

在一项活动中:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    switch(viewType){
        case 1:
            setContentView(R.layout.layout_1);
            break;
        case 2:
            setContentView(R.layout.layout_2);
            break;
        default:
            setContentView(R.layout.layout_default);
            break;
    }
}

并在片段中:

@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View view;
    switch(viewType){
    case 1:
        view = inflater.inflate(R.layout.layout_1, container, false);
        break;
    case 2:
        view = inflater.inflate(R.layout.layout_2, container, false);
        break;
    default:
        view = inflater.inflate(R.layout.layout_default, container, false);
        break;
    }
    return view;
}

但是你需要为每个不同的布局处理不同的视图(如果有的话),所以我建议将方法放在每个条件中,以便扩展布局并处理不同的视图。

此致 马修