我将第二个布局包含在第一个布局中,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="match_parent"
android:layout_gravity="clip_horizontal"
android:layout_alignParentLeft="true"
android:id="@+id/rlMenu"
>
<Button
android:id="@+id/bMusteriler"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Musteriler"
android:textSize="45dp"
android:layout_alignParentLeft="true"
/>
</RelativeLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:layout_toRightOf="@id/rlEkranlar"
>
<include
android:id="@+id/include1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
layout="@layout/ikinci" />
</RelativeLayout>
</RelativeLayout>
问题是如何在单击按钮时更改包含的布局(在java代码上)?
抱歉我的英文。 感谢。
答案 0 :(得分:54)
我建议ViewFlipper
语句的RelativeLayout
内include
。试试这样:
<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/vf"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<include android:id="@+id/include1" layout="@layout/ikinci" />
<include android:id="@+id/map" layout="@layout/third_layout" />
</ViewFlipper>
访问ViewFlipper,如下所示。 最初输出第一个布局:
ViewFlipper vf = (ViewFlipper)findViewById(R.id.vf);
对于Button onClickListener:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
vf.setDisplayedChild(1);
}
});
答案 1 :(得分:20)
有两种方法可以更改代码中的布局:
一个。改变可见度。在xml中包含两个不同的布局:
<include
android:id="@+id/id1"
android:visibility="visible"/>
<include
android:id="@+id/id2"
android:visibility="gone"/>
并在代码中使用:
findViewById(R.id.id1).setVisibility(View.GONE);
findViewById(R.id.id2).setVisibility(View.VISIBLE);
B中。手动添加孩子。使用与您现在使用的相同的xml,并添加代码,您可以添加或删除子项:
yourRelativeLayout.removeAllViews();
yourRelativeLayout.addView(viewToInclude);
Offtopic:
您不需要在RelativeLayout中编写xmlns:android
param。仅适用于布局文件中最顶级的标签。
答案 2 :(得分:0)
您是否尝试获取已包含其他xml的xml的当前视图的实例并使用findViewById()
。 View v是第一个布局,对于此视图,您使用.findViewById()