How can i change included xml layout to another layout on java code?
40,133
Solution 1
I suggest ViewFlipper
inside RelativeLayout
of your include
statements. Try like this:
<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>
Access ViewFlipper as below. Initially first layout is output:
ViewFlipper vf = (ViewFlipper)findViewById(R.id.vf);
For Button onClickListener:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
vf.setDisplayedChild(1);
}
});
Solution 2
There is two ways to change layouts in code:
A. Change visibility. Include tow different layouts in your xml:
<include
android:id="@+id/id1"
android:visibility="visible"/>
<include
android:id="@+id/id2"
android:visibility="gone"/>
and in code use this:
findViewById(R.id.id1).setVisibility(View.GONE);
findViewById(R.id.id2).setVisibility(View.VISIBLE);
B. Manually add children. Use the same xml as you use now and add in code you can add or delete children:
yourRelativeLayout.removeAllViews();
yourRelativeLayout.addView(viewToInclude);
Offtopic:
You don't need to write xmlns:android
param in RelativeLayout. Just for the most top tag in layout file.
Author by
UurYsr
Updated on July 21, 2021Comments
-
UurYsr almost 3 years
I included second layout to first layout like this:
<?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>
Problem is how can I change included layout when clicked a button(on java code)?