Android連載8-動態的添加碎片

来源:https://www.cnblogs.com/ruigege0000/archive/2020/04/30/12806128.html
-Advertisement-
Play Games

一、動態添加碎片 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_p ...


一、動態添加碎片

 

<?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:background="#ffff00"

    android:orientation="vertical" >

   

    <TextView

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center_horizontal"

        android:textSize="20sp"

        android:text="This is another right franment"

        /></LinearLayout>

 

​我們先來修改一個佈局的頁面,然後再將這個頁面添加到主頁面中去,如下XML

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent" ><fragment

      android:id="@+id/left_fragment"

      android:name="com.example.fragmenttest.LeftFragment"

      android:layout_width="0dp"

      android:layout_height="match_parent"

      android:layout_weight="1" />

 

  <FrameLayout

      android:id="@+id/right_layout"

      android:layout_width="0dp"

      android:layout_height="match_parent"

      android:layout_weight="1" >

     

    <fragment

        android:id="@+id/right_fragment"

        android:name="com.example.fragmenttest.RightFragment"

        android:layout_width="match_parent"

        android:layout_height="match_parent" />

 

  </FrameLayout>

 

</LinearLayout>

 

我們製作好佈局之後,然後開始編輯主活動

 

package com.example.fragmenttest;

​

import android.app.Activity;

import android.app.FragmentManager;

import android.app.FragmentTransaction;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

​

public class MainActivity extends Activity implements OnClickListener{

​

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    Button button = (Button) findViewById(R.id.button);

    button.setOnClickListener(this);

  }

​

  @Override

  public void onClick(View v) {

    switch(v.getId()) {

    case R.id.button:

      AnotherRightFragment fragment = new AnotherRightFragment();

      FragmentManager fragmentManager = getFragmentManager();

      FragmentTransaction transaction = fragmentManager.beginTransaction();

      transaction.replace(R.id.right_layout,fragment);

      transaction.commit();

      break;

    default:

      break;

    }

  }

}

 

​總結:(1)​創建待添加的碎片實例;​(2)獲取到FragmentManager,在活動中可以直接調用getFragmentManager()方法得到;(3)開啟一個事務,通過調用beginTransaction()方法進行開啟;(4)向容器中加入碎片,一般使用replace()方法實現,需要傳入容器的id和待添加的碎片實例​;(5)提交事務,調用​commit()方法完成。

二、源碼:

1.項目地址

https://github.com/ruigege66/Android/tree/master/UIBestPractice

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原因:因為甲方比較關心許可的一些問題,會經常問起,但是現場人員往往對許可的內容不太瞭解,這裡基於網路搜索的內容進行統一梳理。因為內容大多來自於網路,如果文中有描述不當的,請大家指正!一、Oracle許可說明Oracle軟體是提供免費下載的,下載安裝後均能夠正常使用。不過使用是有限制的,只可以用於測試... ...
  • 採用工具:maxwell+Kafka+bireme maxwell:maxwell能實時解析MySQL的binlog,並輸出json格式的數據發送到Kafka(還支持其它的消息中間件),具體參見:maxwell官網 Kafka: 一種消息中間件,在該方案中主要用於消息中轉,具體參見Kafka官網 b ...
  • 配置 Internal Load Balancer 創建load balancer 我的三台VM都位於sqldemoVNET/linuxsubnet子網,AG Listener之前在SQL中配置是172.17.2.7,所以這裡frontedn ip也要一樣。 創建LB health probe he ...
  • 前文 假定您對Azure和SQL Server HA具有基礎知識 假定您對Azure Cli具有基礎知識 目標是在Azure Linux VM上創建一個具有三個副本的可用性組,並實現偵聽器和Fencing配置 環境 SQL Server 2019 Developer on Linux Azure V ...
  • 第一種方法: 判斷欄位是否為空,如果為空轉成你要的字元 1.oracle : nvl(“欄位名”,’轉換後的值’);//欄位名是雙引號,轉換後的值是單引號 2.sql Server: isnull(“欄位名”,’轉換後的值’)//欄位名是雙引號,轉換後的值是單引號 3.mySql: ifnull(字 ...
  • 1、基本術語 1)信息:指數據加工處理後有用的數據。 2)信息的3種世界: (1)現實世界:存在於人腦之外的客觀世界。 (2)信息世界:現實世界在人腦中的反映。 (3)數據世界:將信息世界中的信息通過抽象和組織,按特定的數據結構,將數據存儲於電腦中。 3)數據:描述事物的符號記錄。 (1)數據處理 ...
  • 織夢dedecms如何讓內容頁顯示不同的內容,但是每次更新都不變。 今天圈子裡面有個朋友,給我提了一個需求,他的內容頁裡面有個相關推薦,他想每個內容頁顯示的內容都不一樣,但是內容要固定的,更新不要變。 一般我們的做法就是調用織夢的隨機排序,但是隨機當然就是變的,就達不到他的要求. 所以在此給出了一個 ...
  • 各位碼農小伙伴們,在使用MSSQL編輯器時候是否覺得沒有一款格式化工具,寫出來的代碼很不美觀,在團隊中,做code review時候,每個人風格不一,對比不夠直接呢? 我給大家推薦一款SQL Pretty Printer。效果直接上圖。沒有格式化的sql如下: 通過SQL Pretty Printe ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...