У меня следующая ситуация:
- a Основной пользовательский вид (зеленый с синим кружком, только для демонстрации)
- веб-просмотр, который я показываю поверх основного пользовательского представления(viewgroup)
Это работает, но, возможно, это хак (см. код ниже)
Что якак делать:
При нажатии на Основное пользовательское представление, изменяющее позицию и размер веб-просмотра, что я не могу сделать.
Код:
@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?