同一个activity中通过一个按钮切换两个不同的布局 分类: Android 2015-08-06 22:42 120人阅读 评论(0) 收藏
最近项目中需实现在同一个activity中通过一个按钮切换两个不同的布局,此处的按钮并非同一个按钮控件,
而是在两个不同的布局文件中点击按钮实现布局的切换,具体实现如下:
MenuTestActivity.java
package com.example.menutest; import com.example.menutext.R; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; public class MenuTestActivity extends Activity { public static int flag = 0; private LinearLayout.LayoutParams lp; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.double_frame); // Button but = getBtnBack(); lp = new LinearLayout.LayoutParams(150, LinearLayout.LayoutParams.FILL_PARENT); lp.setMargins(-150, 0, 0, 0); ((LinearLayout) findViewById(R.id.leftImage)).setLayoutParams(lp); initButton(); } public void initButton() { Button button01 = (Button) findViewById(R.id.btnBack01); Button btnBack = (Button) findViewById(R.id.btnBack); button01.setText("Open"); button01.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (flag == 0) { // 第一次单击触发的事件 LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); lp.setMargins(0, 0, 0, 0); ((LinearLayout) findViewById(R.id.leftImage)) .setLayoutParams(lp); System.out.println("1,第一次单击触发的事件"); flag = 1; } } }); btnBack.setText("Close"); btnBack.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (flag == 1) { // 第二次单击button.text改变触发的事件 ((LinearLayout) findViewById(R.id.leftImage)) .setLayoutParams(lp); System.out.println("2,第二次单击button.text改变触发的事件"); flag = 0; } } }); } }double_frame.layout
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <LinearLayout android:id="@+id/leftImage" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="-220dp" android:background="@drawable/btn_dial_normal" > <include android:id="@+id/include01" android:layout_width="wrap_content" android:layout_height="fill_parent" layout="@layout/base_layout_l" > </include> </LinearLayout> <LinearLayout android:id="@+id/rightImage" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/btn_dial" > <include android:id="@+id/include02" android:layout_width="wrap_content" android:layout_height="fill_parent" layout="@layout/base_layout_r" > </include> </LinearLayout> </LinearLayout>base_layout_l.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/linearTop" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon" > </ImageView> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:height="40dip" android:text="Dynamic 2" > </TextView> </LinearLayout> <LinearLayout android:id="@+id/linearMain" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" > </LinearLayout> <RelativeLayout android:id="@+id/relativeBottomTotal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/btnBack" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" 返 回 " > </Button> <LinearLayout android:id="@+id/layoutBottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/btnBack" android:layout_alignTop="@+id/btnBack" android:layout_toRightOf="@+id/btnBack" android:gravity="right" > </LinearLayout> </RelativeLayout> </LinearLayout>base_layout_r.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/linearTop" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/icon" > </ImageView> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:height="40dip" android:text="Dynamic 1" > </TextView> </LinearLayout> <LinearLayout android:id="@+id/linearMain" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" > </LinearLayout> <RelativeLayout android:id="@+id/relativeBottomTotal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/btnBack01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=" 1 " > </Button> <LinearLayout android:id="@+id/layoutBottom" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/btnBack" android:layout_alignTop="@+id/btnBack" android:layout_toRightOf="@+id/btnBack" android:gravity="right" > </LinearLayout> </RelativeLayout> </LinearLayout>
源码下载地址:http://download.csdn.net/detail/u010963246/8970561
版权声明:本文为博主原创文章,未经博主允许不得转载。