Позиционирование веб-просмотра динамически в customView - PullRequest
0 голосов
/ 03 апреля 2019

У меня следующая ситуация:

  • a Основной пользовательский вид (зеленый с синим кружком, только для демонстрации)
  • веб-просмотр, который я показываю поверх основного пользовательского представления(viewgroup)

Это работает, но, возможно, это хак (см. код ниже)

enter image description here

Что якак делать:

При нажатии на Основное пользовательское представление, изменяющее позицию и размер веб-просмотра, что я не могу сделать.

Код:

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

    getSupportActionBar().hide();

    ConstraintLayout constraintLayout = new ConstraintLayout(this);

    MainCustomView mainCustomView = new MainCustomView(this);
    mainCustomView.setId(View.generateViewId());
    constraintLayout.addView(mainCustomView);
    mainCustomView.setLayoutParams(new ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT));

    final SubCustomView subCustomView = new SubCustomView(this);

    subCustomView.setLayoutParams(new ViewGroup.LayoutParams(BOX_WIDTH, BOX_HEIGHT));
    subCustomView.setId(View.generateViewId());

    constraintLayout.addView(subCustomView);
    ConstraintSet constraintSet = new ConstraintSet();
    constraintSet.clone(constraintLayout);
    constraintSet.connect(subCustomView.getId(), ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP, BOX_TOPMARGIN);
    constraintSet.connect(subCustomView.getId(), ConstraintSet.LEFT, ConstraintSet.PARENT_ID, ConstraintSet.LEFT, BOX_LEFTMARGIN);
    constraintLayout.setConstraintSet(constraintSet);
    subCustomView.loadData(getBeforeClickText(), "text/html", "UTF-8");

    mainCustomView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            subCustomView.loadData(getAfterClickText(), "text/html", "UTF-8");
            <<<<<<<<<<< New POSITION and SIZE of the Webview >>>>>>>>>>>
        }
    });
    setContentView(constraintLayout);
}

Вопрос: как я могу это сделать?Правильный ли подход я начал, или есть лучшее решение для динамического отображения и изменения веб-просмотра и взаимодействия с ним?Может быть, с ViewOverlay?

...