ConstraintLayout使用ConstraintSet

时间:2019-08-12 10:02:14

标签: android

当我迁移到Androidx时遇到错误ConstraintLayout的所有子代都必须具有ID以使用`ConstraintSet,但是在以前的targetversion 26中工作,当我将目标版本更改为28时,我得到了错误像这样

我尝试了任何解决方案,但对我而言无济于事,请任何人提供解决方案。

ConstraintSet constraintSet = new ConstraintSet();
        constraintSet.clone(mBinding.childConstraint);
        if (tripType == TripType.ONE_WAY) {
            mBinding.btnRoundTrip.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            mBinding.btnOneWay.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, R.drawable.button_footer);
            mBinding.btnMulticities.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            mBinding.btnRoundTrip.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_hint));
            mBinding.btnOneWay.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_home));
            mBinding.btnMulticities.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_hint));
            constraintSet.connect(R.id.depLayout, ConstraintSet.END, R.id.endBorder, ConstraintSet.START, 0);
            constraintSet.setVisibility(R.id.retLayout, View.GONE);

        } else if (tripType == TripType.ROUND_TRIP) {
            mBinding.retLayout.setVisibility(View.VISIBLE);
            mBinding.btnOneWay.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            mBinding.btnRoundTrip.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, R.drawable.button_footer);
            mBinding.btnMulticities.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            mBinding.btnRoundTrip.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_home));
            mBinding.btnOneWay.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_hint));
            mBinding.btnMulticities.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_hint));
            constraintSet.connect(R.id.depLayout, ConstraintSet.END, R.id.centerDivider, ConstraintSet.START, itemMargin);
            constraintSet.connect(R.id.retLayout, ConstraintSet.START, R.id.centerDivider, ConstraintSet.END, itemMargin);
            constraintSet.setVisibility(R.id.retLayout, View.VISIBLE);
        } else {
            mBinding.btnOneWay.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            mBinding.btnMulticities.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, R.drawable.button_footer);
            mBinding.btnRoundTrip.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
            mBinding.btnRoundTrip.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_hint));
            mBinding.btnOneWay.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_hint));
            mBinding.btnMulticities.setTextColor(ContextCompat.getColor(getActivity(), R.color.text_color_home));
        }

        constraintSet.applyTo(mBinding.childConstraint);
        TransitionManager.beginDelayedTransition(mBinding.childConstraint);

请快速提供解决方案

1 个答案:

答案 0 :(得分:0)

将ID添加到相应xml文件中的所有视图