看起来这应该很容易,但到目前为止还没有运气。我设置了Activity的主要布局,然后根据单击的按钮,我需要在当前主布局的末尾添加特定布局。
主要活动:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//live_video_layout is a vertical LinearLayout
setContentView(R.layout.live_video_layout);
//Psuedo code for clarity; these layouts are ScrollViews that will sit under live_video_layout seen above
if(button1 is clicked)
{add R.id.first_layout under live_video_layout}
else if(button2 is clicked)
{add R.id.second_layout under live_video_layout
}
这里的任何指导都会非常感激,我完全没有想法。
答案 0 :(得分:1)
您可以在xml文件中准备两个布局,第一个用于视频视图,第二个用于动态布局:
main_activity.xml :
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/live_video_container">
<!-- include your live_video_layout.xml or directly add your views-->
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/dynamic_layouts_container">
<!-- here we'll add layouts from java code depending on buttons click -->
</LinearLayout>
</LinearLayout>
然后在你的活动中:
private LinearLayout mDynamicLayoutsContainer;
private LayoutInflater mInflater;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
mInflater = LayoutInflater.from(context);
mDynamicLayoutsContainer = (LinearLayout) findViewById(R.id.dynamic_layouts_container);
if(button1 is clicked){
View firstLayout = mInflater.inflate(R.layout.first_layout , null, false);
mDynamicLayoutsContainer.addView(firstLayout);
}else if(button2 is clicked){
View secondLayout = mInflater.inflate(R.layout.second_layout , null, false);
mDynamicLayoutsContainer.addView(secondLayout);
}
}
答案 1 :(得分:0)
您需要第三个布局作为父级。然后将R.layout.live_video_layout
和新的一个放在第三个布局中。