• Android Fragment(一):基本使用


    三、

    四、 代码

    4.1、activity_main.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:gravity="center"
        android:orientation="horizontal" >
    
        <!-- 静态加载fragment:把fragment当成一个ui标签使用 -->
        <fragment
            android:id="@+id/first"
            android:name="com.gatsby.fragmentone.FirstFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    
        <fragment
            android:id="@+id/second"
            android:name="com.gatsby.fragmentone.SecondFragment"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
    
    </LinearLayout>

    4.2、fragment_first.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="match_parent"
            android:layout_height="match_parent"
            android:text="FirstFragment"
            android:textSize="64sp" 
            android:gravity="center"/>
    
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/image1" />
    
    </LinearLayout>

    4.3、fragment_second.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="match_parent"
            android:layout_height="match_parent"
            android:text="SecondFragment"
            android:textSize="64sp" 
            android:gravity="center"/>
    
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:src="@drawable/image8" />
    
    </LinearLayout>

     4.5、MaInActivity.java

    package com.gatsby.fragmentone;
    
    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    
    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    
    
    }

     4.6、FirstFragment.java

    package com.gatsby.fragmentone;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class FirstFragment extends Fragment {
        
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view = inflater.inflate(R.layout.fragment_first, container, false);
            return view;
        }
    }

    4.7、SecondFragment.java

    package com.gatsby.fragmentone;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    
    public class SecondFragment extends Fragment{
        
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view = inflater.inflate(R.layout.fragment_second, container, false);
            return view;
        }
    }

     五、

    5.1、activity_main.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:gravity="center"
        android:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/fragment_id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:orientation="horizontal" />
    
        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="FragmentFirst"
            android:textSize="16sp" />
    
        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="FragmentSecond"
            android:textSize="16sp" />
    
    
    </LinearLayout>

     5.2、fragment_first.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" >
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"       
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/textView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="FirstFragment"
                android:textSize="16sp" />
    
            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/image12"/>
    
        </LinearLayout>
    
    </LinearLayout>

     5.3、fragment_second.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" >
    
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:orientation="vertical" >
    
            <TextView
                android:id="@+id/textView2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:text="SecondFragment"
                android:textSize="16sp" />
    
            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/image9" />
            
        </LinearLayout>
    
    </LinearLayout>

     5.4、MainActivity.java

    package com.gatsby.fragmenttwo;
    
    import android.app.Activity;
    import android.app.FragmentManager;
    import android.app.FragmentTransaction;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    
    public class MainActivity extends Activity implements OnClickListener {
    
        Button btn1, btn2;
        FragmentManager fragmentManager;// Fragment 管理器
        FragmentTransaction fragmentTransaction; // Fragment 事务处理
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
        }
    
        private void initView() {
            btn1 = (Button) findViewById(R.id.btn1);
            btn2 = (Button) findViewById(R.id.btn2);
    
            btn1.setOnClickListener(this);
            btn2.setOnClickListener(this);
    
            fragmentManager = getFragmentManager(); // 得到Fragment 管理器对象
    
            fragmentTransaction = fragmentManager.beginTransaction(); // 开始fragmnet 的事务处理
            FirstFragment firstfragment = new FirstFragment();
            fragmentTransaction.add(R.id.fragment_id, firstfragment); // fragment_id 是布局中给fragment 占位置的控
            fragmentTransaction.commit(); // 提交事务
    
        }
    
        @Override
        public void onClick(View v) {
            fragmentManager = getFragmentManager();
            fragmentTransaction = fragmentManager.beginTransaction();
            switch (v.getId()) {
            case R.id.btn1:
                fragmentTransaction.replace(R.id.fragment_id, new FirstFragment());
                fragmentTransaction.addToBackStack(null);
                break;
            case R.id.btn2:
                fragmentTransaction.replace(R.id.fragment_id, new SecondFragment());
                fragmentTransaction.addToBackStack(null);
                break;
            }
            fragmentTransaction.commit();
        }
    
    }

     5.5、FirstFragment.java

    package com.gatsby.fragmenttwo;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class FirstFragment extends Fragment implements OnClickListener {
    
        TextView textView1;
        ImageView imageView1;
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view = inflater.inflate(R.layout.fragment_first, container, false);
    
            textView1 = (TextView) view.findViewById(R.id.textView1);
            imageView1 = (ImageView) view.findViewById(R.id.imageView1);
            imageView1.setOnClickListener(this);
    
            return view;
        }
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.imageView1:
                textView1.setText("you onClick FragmentFirst!");
                imageView1.setImageResource(R.drawable.image23);
                break;
            default:
                break;
            }
    
        }
    
    }

     5.6、SecondFragment.java

    package com.gatsby.fragmenttwo;
    
    import android.app.Fragment;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.TextView;
    
    public class SecondFragment extends Fragment implements OnClickListener {
    
        TextView textView2;
        ImageView imageView2; 
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            View view = inflater.inflate(R.layout.fragment_second, container, false);
    
            textView2 = (TextView) view.findViewById(R.id.textView2);
            imageView2  = (ImageView) view.findViewById(R.id.imageView2);
            imageView2.setOnClickListener(this);
    
            return view;
    
        }
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.imageView2:
                textView2.setText("you onClick FragmentSecond!");
                imageView2.setImageResource(R.drawable.image17);                        
                break;
            default:
                break;
            }
    
        }
    
    }
  • 相关阅读:
    Unity C# 反编译
    java finalize方法总结、GC执行finalize的过程
    Android性能调优篇之探索垃圾回收机制
    深入理解JVM(一)——JVM内存模型
    Android性能调优篇之探索JVM内存分配
    HashMap实现原理分析
    [干货]2017已来,最全面试总结——这些Android面试题你一定需要
    2017年最全的30个Android面试题,你将如何回答?
    Android2017进阶知识点、面试题及答案(精选版)
    Android2017最新面试题(3-5年经验个人面试经历)
  • 原文地址:https://www.cnblogs.com/crushgirl/p/13022481.html
Copyright © 2020-2023  润新知