Я пытаюсь программно создать пользовательский макет в Android. Макет, который мне нужно создать, приведен здесь:
https://androidexample365.com/android-layout-that-simulates-physics-using-jbox2d/
Я добавил необходимые зависимости, как показано на этой странице, и я могу использовать этот макет в деятельность xml файл. Я проверил это, используя пример кода xml, приведенный на этой странице.
Я хотел бы создать этот макет программно. В качестве теста я хочу сделать такой же макет, учитывая пример кода xml на этой странице. Из здесь я узнал, как это сделать для LinearLayout, который включает в себя вызов
parent.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
в некоторый момент.
Но даже если этот пользовательский макет является производным от LinearLayout, класс LayoutParams был объявлен закрытым, и Android Studio выдает ошибку, если я пытаюсь использовать его в своем java коде
Этот раздел кода объявляет LayoutParams внутри PhysicsLinearLayout. java
private static class LayoutParams extends LinearLayout.LayoutParams implements PhysicsLayoutParams {
PhysicsConfig config;
public LayoutParams(Context c, AttributeSet attrs) {
super(c, attrs);
config = PhysicsLayoutParamsProcessor.process(c, attrs);
}
@Override
public PhysicsConfig getConfig() {
return config;
}
}
Похоже, я не могу использовать соответствующий метод программного создания LinerLayout для создания этого пользовательского представления.
Как создать этот пользовательский вид программным способом? Или, другими словами, как я могу вызвать функцию setLayoutParams () для этого пользовательского представления?
Исходный код этого пользовательского макета приведен здесь: https://github.com/Jawnnypoo/PhysicsLayout