if(view == null)片段中的问题

时间:2017-12-06 09:50:03

标签: android android-8.0-oreo

我更新了我的Sdk Oreo 8.0当我将当前片段发送到我之前的片段时崩溃因为我正在使用if(view == null) 如果我删除了这个条件,它将正常工作,但必须再次加载视图。

@Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                             @Nullable Bundle savedInstanceState) {
        if (view == null) {
            view = inflater.inflate(R.layout.home_fragement_layout, container, false);
            ButterKnife.bind(this, view);
            bundle=getArguments();
            registrationResponse=(RegistrationResponse)bundle.getSerializable("registerresponse");
            setadapter();
            hitUserFavouriteOutfitsapi();
           swipeRefreshLayout.setOnRefreshListener(this);
        }
        toolBarTopChangeState =((ToolBarTopChangeState)context);
        toolBarTopChangeState.stateChangeToolBarIcon(0);
        toolBarTopChangeState.stateChangeToolBarText(getString(R.string.app_name));
        return view;
    }

3 个答案:

答案 0 :(得分:0)

使用此代码:

const data = [{ item_name: 'Jumbo Combo', item_price: 25, item_key: '9lazhy15tp2fgo72', quantity: 1, ingredients: [{ group_key: 'fg1udvnz81qwpxtp', key: 'kcck54k7h3fzp5f0', ingredient_name: 'Large', price: 3 }]}, { item_name: 'Swiss & Mushroom Combo', item_key: 'e1vdfos6s50d5kej', item_price: 22, quantity: 1, ingredients: [{ group_key: 'fg1udvnz81qwpxtp', key: 'kcck54k7h3fzp5f0', ingredient_name: 'Large', price: 3 }]}];

const sum = _.sumBy(data, item => item.item_price + _.sumBy(item.ingredients, 'price'));

console.log(sum);

答案 1 :(得分:0)

在列表上是一个很好的做法,检查视图是否已经创建,以及是否要进一步使用它,但是对于活动和片段,您应该让操作系统决定何时应该再次充气视图。您可以查看android生命周期,以更好地了解它的工作原理

答案 2 :(得分:0)

它会发生,因为我在片段更改时添加动画并返回到后面。由于Android 8.0(Oreo)的工作正常,所以面临的问题因为我在片段更改时删除了动画#39 ;解决了。