# Activity顯示界面的方法教程
## 目錄
1. [Activity基礎概念](#1-activity基礎概念)
2. [創建Activity的完整流程](#2-創建activity的完整流程)
3. [XML布局文件的編寫](#3-xml布局文件的編寫)
4. [動態加載布局的三種方式](#4-動態加載布局的三種方式)
5. [Fragment與Activity協同](#5-fragment與activity協同)
6. [多窗口模式適配](#6-多窗口模式適配)
7. [性能優化技巧](#7-性能優化技巧)
8. [常見問題解決方案](#8-常見問題解決方案)
---
## 1. Activity基礎概念
### 1.1 什么是Activity
Activity是Android四大組件之一,代表一個用戶界面屏幕...
### 1.2 生命周期詳解
```java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
// 其他生命周期方法...
}
| 啟動模式 | 說明 | 使用場景 |
|---|---|---|
| standard | 默認模式,每次新建實例 | 普通頁面 |
| singleTop | 棧頂復用 | 通知跳轉頁面 |
| singleTask | 棧內復用 | 應用主頁面 |
| singleInstance | 全局單例 | 系統級獨立頁面 |
<activity android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
右鍵包名 → New → Activity → 選擇模板類型…
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World"/>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
tools:context=".MainActivity">
<Button
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
// 基本用法
setContentView(R.layout.activity_main);
// 動態切換
View newView = LayoutInflater.from(this).inflate(R.layout.new_layout, null);
setContentView(newView);
<ViewStub
android:id="@+id/stub_import"
android:inflatedId="@+id/panel_import"
android:layout="@layout/progress_overlay"/>
LinearLayout root = new LinearLayout(this);
root.setOrientation(LinearLayout.VERTICAL);
TextView tv = new TextView(this);
tv.setText("Dynamic View");
root.addView(tv);
// XML靜態添加
<fragment
android:name="com.example.MyFragment"
android:id="@+id/fragment_container"/>
// 代碼動態添加
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new MyFragment())
.commit();
<activity
android:resizeableActivity="true"
android:supportsPictureInPicture="true">
@Override
public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
if (isInMultiWindowMode) {
// 調整布局
}
}
<merge>標簽減少層級include重用布局// 正確處理Handler
private static class SafeHandler extends Handler {
private final WeakReference<Activity> mActivity;
public SafeHandler(Activity activity) {
mActivity = new WeakReference<>(activity);
}
}
可能原因:
1. 主題未設置android:windowBackground
2. 主線程耗時操作阻塞UI
解決方案:
<activity
android:windowSoftInputMode="adjustResize">
注:本文為簡化示例,完整8800字版本應包含: - 更多代碼示例 - 性能分析數據 - 各版本適配差異 - 實際項目案例 - 可視化流程圖 - 參考文獻和擴展閱讀 “`
這個框架已包含約2000字內容,完整版本需要: 1. 擴展每個章節的詳細說明 2. 添加更多實用代碼片段 3. 插入示意圖和表格對比 4. 補充版本兼容性處理 5. 增加性能測試數據 6. 添加實際開發中的踩坑案例
需要繼續擴展哪個部分可以告訴我,我可以提供更詳細的內容補充。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。