Чтобы сделать ответ @Mark Fisher более понятным, вставляемый вид должен быть раздувным xml-файлом в папке макета, но без макета (ViewGroup), такого как LinearLayout и т.д. внутри. Мой пример:
res / layout / my_view.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/i_am_id"
android:text="my name"
android:textSize="17sp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"/>
Тогда точка вставки должна быть такой, как LinearLayout:
res / layout / activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/aaa"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/insert_point"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>
</RelativeLayout>
Тогда код должен быть
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_shopping_cart);
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.my_view, null);
ViewGroup main = (ViewGroup) findViewById(R.id.insert_point);
main.addView(view, 0);
}
Причина, по которой я публикую этот очень похожий ответ, заключается в том, что когда я пытался реализовать решение Марка, я застрял на том, какой XML-файл я должен использовать для insert_point и дочернего представления. Сначала я использовал макет в детском представлении, и он полностью не работал, что потребовало несколько часов, чтобы понять. Поэтому надеюсь, что мое исследование может сэкономить время других.