این صفحه نحوه ایجاد نمای در محتوای ارائه شده در زیر فرض را بر این میگذارد که شما این مقالات رابط کاربری سیستم را خواندهاید: این مقاله: فایلی با نام این طرح نمای زیر را ایجاد می کند: با افزودن ViewStub به کد زیر را به ترتیبی که ViewStubs در برای نمایش و پنهان شدن، طرح جدید باید به یک OverlayViewController پیوند داده شود. برای ایجاد یک یک OverlayViewMediator برای فعال کردن زمانی که نمای جدید نشان داده یا پنهان شود مورد نیاز است. برای سهولت درک و فعال کردن نمای ما، وقتی وضعیت خاموش است از بلوتوث استفاده کنید. هنگامی که "مخفی کردن!" دکمه کلیک می شود. از آنجایی که این عمل فقط روی دکمه نمای باد شده است، آن را مستقیماً به متد زیر را به تبریک می گویم! شما یک نمای در برای کسب اطلاعات بیشتر، به منابع ارائه شده در زیر مراجعه کنید. تعویض کاربر تمام صفحه را به عنوان یک برنامه ساده از یک OverlayPanelViewController برای ارائه انیمیشن کشیدن اولیه هنگام نمایش و پنهان کردن نماها در داخل این صفحه نحوه ایجاد نمای در محتوای ارائه شده در زیر فرض را بر این میگذارد که شما این مقالات رابط کاربری سیستم را خواندهاید: این مقاله: فایلی با نام این طرح نمای زیر را ایجاد می کند: با افزودن ViewStub به کد زیر را به ترتیبی که ViewStubs در برای نمایش و پنهان شدن، طرح جدید باید به یک OverlayViewController پیوند داده شود. برای ایجاد یک یک OverlayViewMediator برای فعال کردن زمانی که نمای جدید نشان داده یا پنهان شود مورد نیاز است. برای سهولت درک و فعال کردن نمای ما، وقتی وضعیت خاموش است از بلوتوث استفاده کنید. هنگامی که "مخفی کردن!" دکمه کلیک می شود. از آنجایی که این عمل فقط روی دکمه نمای باد شده است، آن را مستقیماً به متد زیر را به تبریک می گویم! شما یک نمای در برای کسب اطلاعات بیشتر، به منابع ارائه شده در زیر مراجعه کنید. تعویض کاربر تمام صفحه را به عنوان یک برنامه ساده از یک OverlayPanelViewController برای ارائه انیمیشن کشیدن اولیه هنگام نمایش و پنهان کردن نماها در داخل SystemUIOverlayWindow را توضیح می دهد.SystemUIOverlayWindow آن آشنا هستید.OverlayViewController را ارائه می دهد.OverlayViewController نمی پردازد.frameworks/base/packages/CarSystemUI/res/layout/codelab_layout.xml ایجاد کنید تا حاوی موارد زیر باشد:<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/codelab_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="Code Lab View!"
android:color="@*android:color/car_accent"
android:textStyle="italic"
android:textSize="34sp"/>
<Button
android:id="@+id/codelab_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="Hide!"
android:background="@*android:color/car_accent"/>
</LinearLayout>
</FrameLayout>
SystemUIOverlayWindow ، نمای را به پنجره خود اضافه کنید.FrameLayout root به frameworks/base/packages/CarSystemUI/res/layout/sysui_overlay_window.xml اضافه کنید:<ViewStub android:id="@+id/codelab_stub"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/codelab_layout"/>
FrameLayout ریشه تعریف می شود، ترتیب Z نماها را در پنجره مشخص می کند. از آنجایی که این کد لبه شامل نماهای لایه بندی نمی شود، می توانید قطعه کد را در هر جایی از FrameLayout ریشه اضافه کنید.OverlayViewController تزریقی با نام frameworks/base/packages/CarSystemUI/src/com/android/systemui/car/codelab/CodeLabViewController.java با محتوای زیر:package com.android.systemui.car.codelab;
import com.android.systemui.R;
import com.android.systemui.car.window.OverlayViewController;
import com.android.systemui.car.window.OverlayViewGlobalStateController;
import com.android.systemui.dagger.SysUISingleton;
import javax.inject.Singleton;
@SysUISingleton
public class CodeLabViewController extends OverlayViewController {
@Inject
public CodeLabViewController(
OverlayViewGlobalStateController overlayViewGlobalStateController) {
super(R.id.codelab_stub, overlayViewGlobalStateController);
}
}
OverlayViewMediator تزریقی جدید با نام frameworks/base/packages/CarSystemUI/src/com/android/systemui/car/codelab/CodeLabViewMediator.java با محتوای زیر ایجاد کنید: package com.android.systemui.car.codelab;
import android.bluetooth.BluetoothAdapter;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import com.android.systemui.car.window.OverlayViewMediator;
import com.android.systemui.dagger.SysUISingleton;
import javax.inject.Inject;
@SysUISingleton
public class CodeLabViewMediator implements OverlayViewMediator {
Context mContext;
CodeLabViewController mCodeLabViewController;
@Inject
public CodeLabViewMediator(Context context, CodeLabViewController codeLabViewController) {
mContext = context;
mCodeLabViewController = codeLabViewController;
}
@Override
public void registerListeners() {
// no-op
}
@Override
public void setupOverlayContentViewControllers() {
// no-op
}
}// no-op در CodeLabViewMediator#registerListeners با موارد زیر جایگزین کنید:// Register Show Listener
mContext.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_OFF:
// Show OverlayViewController
mCodeLabViewController.start();
break;
}
}
}
}, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));OverlayViewController خود اضافه کنید.CodeLabViewController اضافه کنید:@Override
protected void onFinishInflate() {
getLayout().findViewById(R.id.codelab_button).setOnClickListener(v -> {
stop();
});
}
/** Injects CodeLabViewMediator. */
@Binds
@IntoMap
@ClassKey(CodeLabViewMediator.class)
public abstract OverlayViewMediator bindCodeLabViewMediator(
CodeLabViewMediator overlayViewsMediator);
frameworks/base/packages/CarSystemUI/res/values/config.xml اضافه کنید: <item>com.android.systemui.car.codelab.CodeLabViewMediator</item>
SystemUIOverlayWindow ایجاد کردید: SystemUIOverlayWindow: ببینید:SystemUIOverlayWindow استفاده می شود. برای اطلاعات بیشتر به پنل اعلان مراجعه کنید:SystemUIOverlayWindow را توضیح می دهد.SystemUIOverlayWindow آن آشنا هستید.OverlayViewController را ارائه می دهد.OverlayViewController نمی پردازد.frameworks/base/packages/CarSystemUI/res/layout/codelab_layout.xml ایجاد کنید تا حاوی موارد زیر باشد:<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/codelab_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="Code Lab View!"
android:color="@*android:color/car_accent"
android:textStyle="italic"
android:textSize="34sp"/>
<Button
android:id="@+id/codelab_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="Hide!"
android:background="@*android:color/car_accent"/>
</LinearLayout>
</FrameLayout>
SystemUIOverlayWindow ، نمای را به پنجره خود اضافه کنید.FrameLayout root به frameworks/base/packages/CarSystemUI/res/layout/sysui_overlay_window.xml اضافه کنید:<ViewStub android:id="@+id/codelab_stub"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/codelab_layout"/>
FrameLayout ریشه تعریف می شود، ترتیب Z نماها را در پنجره مشخص می کند. از آنجایی که این کد لبه شامل نماهای لایه بندی نمی شود، می توانید قطعه کد را در هر جایی از FrameLayout ریشه اضافه کنید.OverlayViewController تزریقی با نام frameworks/base/packages/CarSystemUI/src/com/android/systemui/car/codelab/CodeLabViewController.java با محتوای زیر:package com.android.systemui.car.codelab;
import com.android.systemui.R;
import com.android.systemui.car.window.OverlayViewController;
import com.android.systemui.car.window.OverlayViewGlobalStateController;
import com.android.systemui.dagger.SysUISingleton;
import javax.inject.Singleton;
@SysUISingleton
public class CodeLabViewController extends OverlayViewController {
@Inject
public CodeLabViewController(
OverlayViewGlobalStateController overlayViewGlobalStateController) {
super(R.id.codelab_stub, overlayViewGlobalStateController);
}
}
OverlayViewMediator تزریقی جدید با نام frameworks/base/packages/CarSystemUI/src/com/android/systemui/car/codelab/CodeLabViewMediator.java با محتوای زیر ایجاد کنید: package com.android.systemui.car.codelab;
import android.bluetooth.BluetoothAdapter;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import com.android.systemui.car.window.OverlayViewMediator;
import com.android.systemui.dagger.SysUISingleton;
import javax.inject.Inject;
@SysUISingleton
public class CodeLabViewMediator implements OverlayViewMediator {
Context mContext;
CodeLabViewController mCodeLabViewController;
@Inject
public CodeLabViewMediator(Context context, CodeLabViewController codeLabViewController) {
mContext = context;
mCodeLabViewController = codeLabViewController;
}
@Override
public void registerListeners() {
// no-op
}
@Override
public void setupOverlayContentViewControllers() {
// no-op
}
}// no-op در CodeLabViewMediator#registerListeners با موارد زیر جایگزین کنید:// Register Show Listener
mContext.registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_OFF:
// Show OverlayViewController
mCodeLabViewController.start();
break;
}
}
}
}, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));OverlayViewController خود اضافه کنید.CodeLabViewController اضافه کنید:@Override
protected void onFinishInflate() {
getLayout().findViewById(R.id.codelab_button).setOnClickListener(v -> {
stop();
});
}
/** Injects CodeLabViewMediator. */
@Binds
@IntoMap
@ClassKey(CodeLabViewMediator.class)
public abstract OverlayViewMediator bindCodeLabViewMediator(
CodeLabViewMediator overlayViewsMediator);
frameworks/base/packages/CarSystemUI/res/values/config.xml اضافه کنید: <item>com.android.systemui.car.codelab.CodeLabViewMediator</item>
SystemUIOverlayWindow ایجاد کردید: SystemUIOverlayWindow: ببینید:SystemUIOverlayWindow استفاده می شود. برای اطلاعات بیشتر به پنل اعلان مراجعه کنید:
SystemUIOverlayWindow Codelab
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-10-10 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-10-10 بهوقت ساعت هماهنگ جهانی."],[],[]]