<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 1、Fragment知識概要 Android3.0引入了Fragment,主要目的是用在大屏幕設備上,支持更加動態和靈活的UI設計。Fragment在你的應用中應當是一個模塊化和可重用的組件,因為Fragment定義了它自己的布局,以及通過使用它自己的聲明周期回調回調方法定義了它自己的行為,可以將Fragment包含到多個Activity中。 (1)Fragment可以作為Activity界面的一部分組成出現; (2)可以在一個Activity中同時出現多個Fragment,并且一個Fragment也可以在多個Activity中使用; (3)在Activity運行過程中,可以添加、移除或替換Fragment; (4)Fragment可以響應自己的輸入事件,并且有自己的聲明周期,它們的生命周期受宿主Activity的生命周期影響; (5)Fragment在第一次繪制它的用戶界面時,系統會調用onCreateView()方法,此方法返回一個View。(如果不顯示UI,返回null); Fragment兩種加載方式:靜態加載、動態加載。 ### 2、準備階段: 本文以及后續將使用一個APP來講解關于Fragment的知識,大致布局如下: ![](https://box.kancloud.cn/2016-04-06_5704ccee90fce.jpg) values添加color.xml: ~~~ <?xml version="1.0" encoding="utf-8"?> <resources> <color name="gray">#88000000</color> <color name="white">#ffffff</color> </resources> ~~~ ? ? ? drawable中添加radio_pressed.xml ~~~ <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/gray" android:state_checked="true"></item> <item android:drawable="@color/white" android:state_pressed="true"></item> <item android:drawable="@color/white"></item> </selector> ~~~ main主布局: ~~~ <?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" > <LinearLayout android:id="@+id/frame" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > </LinearLayout> <RadioGroup android:id="@+id/radiogroup" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:gravity="center_horizontal" android:orientation="horizontal" > <RadioButton android:id="@+id/first" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/radio_pressed" android:button="@null" android:drawableTop="@drawable/ic_launcher" android:gravity="center_horizontal" android:text="靜態加載" /> <RadioButton android:id="@+id/second" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/radio_pressed" android:button="@null" android:drawableTop="@drawable/ic_launcher" android:gravity="center_horizontal" android:text="動態加載" /> <RadioButton android:id="@+id/thrid" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/radio_pressed" android:button="@null" android:drawableTop="@drawable/ic_launcher" android:gravity="center_horizontal" android:text="生命周期" /> <RadioButton android:id="@+id/fourth" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/radio_pressed" android:button="@null" android:drawableTop="@drawable/ic_launcher" android:gravity="center_horizontal" android:text="傳值通信" /> </RadioGroup> </RelativeLayout> ~~~ MainActivity加載main: ~~~ package com.example.fragment; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.RadioGroup; import android.widget.RadioGroup.OnCheckedChangeListener; public class MainActivity extends Activity implements OnCheckedChangeListener { private RadioGroup group; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); group=(RadioGroup) findViewById(R.id.radiogroup); group.setOnCheckedChangeListener(this); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub switch (checkedId) { case R.id.first: //演示靜態加載 break; case R.id.second: //演示動態加載 break; case R.id.thrid: //演示生命周期 break; case R.id.fourth: //演示傳值通信 break; } } } ~~~ ### 3、靜態加載 在Activity的layout文件中聲明Fragment(特別注意:在<fragment>標簽中的android: name屬性中指定了在layout中實例化的Fragment類),標識Fragment的方法:A.android: id 屬性提供一個唯一ID;B.android: tag屬性提供一個唯一字符串; 添加fragment.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:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我的Fragment"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/button"/> </LinearLayout> ~~~ 添加MyFragment類,并加載fragment布局: ~~~ package com.example.fragment; 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.Button; import android.widget.TextView; public class MyFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // layout布局文件轉換成View對象 /** * inflater.inflate(resource, root, attachToRoot) * resource:Fragment需要加載的布局文件 * root:加載layout的父ViewGroup * attactToRoot:false,不返回父ViewGroup */ View view = inflater.inflate(R.layout.fragment, container, false); TextView text = (TextView) view.findViewById(R.id.text); Button button = (Button) view.findViewById(R.id.button); text.setText("靜態加載Fragment"); button.setText("獲取內容"); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub // String value = getAaa(); // Toast.makeText(getActivity(), "value="+value, // Toast.LENGTH_SHORT).show(); } }); return view; } } ~~~ 添加jigntai.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" > <!-- android:id:靜態加載必須指定一個ID --> <!-- android:name:完整包名 --> <fragment android:id="@+id/fragment" android:layout_width="wrap_content" android:layout_height="wrap_content" android:name="com.example.fragment.MyFragment" /> </LinearLayout> ~~~ 添加JingTaiActivity類: ~~~ public class JingTaiActivity extends Activity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.jingtai); Button button=(Button) findViewById(R.id.button); tv=(TextView) findViewById(R.id.text); button.setText("改變"); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub tv.setText("TextView改變了"); } }); } } ~~~ 主MainActivity中演示靜態加載部分添加: ~~~ case R.id.first: //演示靜態加載 Intent jingtaiIntent=new Intent(MainActivity.this,JingTaiActivity.class); startActivity(jingtaiIntent); break; ~~~ MainActivity跳轉到JingTaiActivity,里面加載了一個<fragment>,而其中android:name屬性是com.example.fragment.MyFragment,在這個MyFragment中又有自己的text、button布局。再回到JingTaiActivity,在其中加載了jingtai.xml,并且可以直接通過findViewById找到MyFragment的布局文件fragment中的text、button。 也就是說,當一個布局文件中通過靜態加載Fragment加載到Activity中來,Fragment中的布局文件對Activity也是共享的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看