zoukankan      html  css  js  c++  java
  • android 局部界面动态切换

      最*在做*板开发,觉得把Activity做的像网页效果那样比较好。局部界面固定,局部界面可以动态切换。效果如下:

    这个效果由3个layout构成

    main.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="horizontal" >
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="@android:color/black" >
    
            <Button
                android:id="@+id/btnSwitch"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="switch" />
    
            <Button
                android:id="@+id/btnScreen"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="screen" />
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/frameSwitch"
            android:layout_width="160dp"
            android:layout_height="fill_parent"
            android:background="@android:color/white" >
        </LinearLayout>
    
    </LinearLayout>

    one.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:background="@color/yellow"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="this is linearLayout one" />
    
    </LinearLayout>

    two.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="this is linearLayout two" />
    
        <Button
            android:id="@+id/btnSecond"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="btnSecond" />
    
    </LinearLayout>

    下面是Java代码

    public class ZzzAndroidActivity extends Activity {
        private LinearLayout frameSwitch;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            frameSwitch = (LinearLayout) findViewById(R.id.frameSwitch);
            Button btnSwitch = (Button) findViewById(R.id.btnSwitch);
            btnSwitch.setOnClickListener(new OnClickListener() {
                boolean boo = false;
    
                @Override
                public void onClick(View v) {
                    boo = !boo;
                    if (boo) {
                        getViewOne();
                    } else {
                        getViewSecond();
                    }
                }
            });
            /*
             * 是否全屏
             */
            Button btnScreen = (Button) findViewById(R.id.btnScreen);
            btnScreen.setOnClickListener(new OnClickListener() {
                boolean isScreen = false;
    
                @Override
                public void onClick(View v) {
                    isScreen = !isScreen;
                    if (isScreen) {
                        frameSwitch.setVisibility(android.view.View.GONE);
                    } else {
                        frameSwitch.setVisibility(android.view.View.VISIBLE);
                    }
                }
            });
        }
    
        public void getViewOne() {
            View viewOne = getLayoutInflater().inflate(R.layout.one, null);
            frameSwitch.removeAllViews();
            frameSwitch.addView(viewOne, LayoutParams.FILL_PARENT,
                    LayoutParams.FILL_PARENT);
        }
    
        public void getViewSecond() {
            View viewSecond = getLayoutInflater().inflate(R.layout.two, null);
            Button btn = (Button) viewSecond.findViewById(R.id.btnSecond);
            btn.setOnClickListener(new OnClickListener() {
    
                @Override
                public void onClick(View v) {
                    Toast.makeText(ZzzAndroidActivity.this, "hello world",
                            Toast.LENGTH_LONG).show();
                }
            });
            frameSwitch.removeAllViews();
            frameSwitch.addView(viewSecond, LayoutParams.FILL_PARENT,
                    LayoutParams.FILL_PARENT);
        }
    }
  • 相关阅读:
    conan本地安装包
    Python PIL 怎么知道写入图片格式的kb大小
    怎么对C++枚举(不是类)里面的东西进行随机
    当双方Visual studio windows SDK不一样的时候的解决办法
    不小心使用vcpkg之后再使用conan,一直报链接错误
    关于obj文件的理解
    卸载VS2015之后,安装VS2017出错
    性状、生成器、闭包、OPcache【Modern PHP】
    docker容器修改hosts文件,重启失效问题解决
    微信公众号-模板消息通用接口封装
  • 原文地址:https://www.cnblogs.com/oldfeel/p/2540605.html
Copyright © 2011-2022 走看看