تالار گفتمان nCIS.ir

نسخه‌ی کامل: عدم نمایش Switch در ViewGroup (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان گرامی
کدی نوشتم تقریبا بدین صورت :

public class TestView extends ViewGroup {

    private ImageView imageView;
    private Switch aSwitch;

    

    public TestView(Context context) {
        super(context);
        init();
    }

    public TestView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public TestView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {


        imageView = new ImageView(getContext());
        imageView.setImageResource(R.drawable.clock_icon);
        imageView.setAlpha(.5f);


        aSwitch = new Switch(getContext());
        aSwitch.setText("hello");
        aSwitch.setChecked(true);


        addView(imageView);
        addView(aSwitch);



    }

    @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        imageView.layout(50, 50,100, 70);
        aSwitch.layout(50,50,100,70);


    }

    

    @Override
    protected void onLayout(boolean b, int i, int i1, int i2, int i3) {

    }
}

متن hello نشان داده میشه،  اما دکمه سوئیچ نمایش داده نمیشه. آیا می دونید مشکل از چیه ؟
مشکل تقریبا بدین شکل حل شد:

   @Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        aSwitch.measure(w, h);
        aSwitch.layout(0, 0, aSwitch.getMeasuredWidth(), aSwitch.getMeasuredHeight());
        
    }