當前位置:首頁 » 安卓系統 » 如何使用安卓原生導航欄

如何使用安卓原生導航欄

發布時間: 2022-09-11 11:54:12

『壹』 安卓手機應用開發,如何實現設置頁面頂部添加導航欄,以及自定義風格

自定義頂部標題風格,在每個界面xml中調用

『貳』 怎樣設置導航欄

一般是:設置——全部設置——導航欄,當然可能不同的手機型號,設置方法不同。僅供參考。而涉及導航欄的具體步驟如下面的表格會寫得很具體。

在屏幕上找到如圖所示紅色方框標記的「設置」選項,點擊進如設置界面。
點擊選擇下圖所示紅色方框標記的「導航欄」選項。
我們可以看到下圖所示目前「導航欄可隱藏」選項是關閉的。
點擊打開紅色方框標記的「導航欄可隱藏」選項後,我們可以看到如圖下方紅色標記的位置多了一個向下的「箭頭」,這個「箭頭」就是可以隱藏導航欄的選項。點擊這個「箭頭後」導航欄便會消失。
如下圖所示,點擊「箭頭」後,導航欄已經在屏幕界面中消失了。如果再想導航欄出現,只需要拇指從屏幕最下方往上滑動一小段距離即可。
導航欄幾個按鍵的位置還是可以調換的,如下圖所示我們選中的導航欄按鍵分布已經和前面圖片上顯示的不一樣了。

『叄』 Android 將App的內容延伸到狀態欄/導航欄

來自我的CSDN博客: http://blog.csdn.net/dahaohan/article/details/52175190

看過Android的桌面應用都是介樣的:

如何讓自己的應用也達到這般效果呢?這里就介紹幾種常用的方法以及它們之間的區別。

首先展示下此次demo的布局和初始狀態:

初始效果圖如下:

使用這個方式首先要理解幾個概念,窗口層級以及窗口background/窗口透明:
Google在API-19 以及API-21新增對狀態欄/導航欄窗口透明和顏色的控制:

對應的在主題內即可控制:

這里首先要明了這里狀態欄和導航欄窗口是系統級窗口而Activity對應的時應用窗口,它們屬於不同的窗口層級;
然後狀態欄/導航欄系統級窗口是在App應用窗口之上,故而Activity應用窗口雖然有整個屏幕的大小,但是可顯示內容的區域得除去其上疊加的不透明的窗口區域。詳細的窗口計算繪制可參考大神老羅的博文:
Android窗口管理服務WindowManagerService計算Activity窗口大小的過程分析

下面來使用主題控制導航欄/狀態欄透明,同時看看上述兩種設置透明的方式效果有何不同:

初始桌面和啟動Activity效果圖:

可以看到雖然導航欄/狀態欄透明了,當時應用窗口顯示的內容依然只是除去了兩個系統窗口之外的區域,並沒有衍生到導航欄/狀態欄之下。

效果如下:

可以看到已經將應用的內容布局延伸到導航欄/狀態欄下方了,來看看關於android:windowTranslucentStatus
android:windowTranslucentNavigation的官方說明看看來理解其與設置color transparent的區別:

根據FLAG的說明,可以看出設置該標志位等同於View申請設置:

PS:從效果圖看,雖然布局延伸到狀態欄導航欄區域,但是相應的內容「hello world」文字也被狀態欄/導航欄遮住了。在布局根視圖設置fitsSystemWindows為true可以使得,系統自動為視圖添加一個狀態欄/導航欄高度的padding:

效果如下:

查看SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 和 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN的說明,可以發現其實還有兩個非常接近的FLAG:

根據官方的說明提示,SYSTEM_UI_FLAG_FULLSCREEN / SYSTEM_UI_FLAG_HIDE_NAVIGATION主要用於動態切換隱藏/顯示系統導航欄/狀態欄;例如書籍閱讀應用/視頻播放應用等。而像游戲類的全屏應用則推薦使用window flag。

上述的透明導航欄/狀態欄等API基本是需要API-19或是API-21才能使用的,這里還有一種API-1的方案能夠實現布局內容全屏:

實際上只需要設置FLAG_LAYOUT_NO_LIMITS就足夠了;這FLAG是看Android原生的Launcher / Keyguard源碼,看到有用到如此設置,其窗口設置具體原理我也沒有弄清..... 有大神了解可以指點下。

PS:這個套路下,使用fitsSystemWindows="true"是無效的,智能自己控制號布局位置。

『肆』 android 怎麼實現左側導航欄

Android左側推出導航菜單可以讓Activity繼承PopupWindow類來實現的彈出窗體,布局可以根據自己定義設計。彈出效果主要使用了translate和alpha樣式實現。具體的做法是下列代碼:
第一步:設計彈出窗口xml:

Xml代碼
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
>

<LinearLayout
android:id="@+id/pop_layout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:background="@drawable/btn_style_alert_dialog_background"
>

<Button
android:id="@+id/btn_take_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="20dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="拍照"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>

<Button
android:id="@+id/btn_pick_photo"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="5dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="從相冊選擇"
android:background="@drawable/btn_style_alert_dialog_button"
android:textStyle="bold"
/>

<Button
android:id="@+id/btn_cancel"
android:layout_marginLeft="20dip"
android:layout_marginRight="20dip"
android:layout_marginTop="15dip"
android:layout_marginBottom="15dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="取消"
android:background="@drawable/btn_style_alert_dialog_cancel"
android:textColor="#ffffff"
android:textStyle="bold"

/>
</LinearLayout>
</RelativeLayout>
第二步:創建SelectPicPopupWindow類繼承PopupWindow:

Java代碼
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.Button;
import android.widget.PopupWindow;

public class SelectPicPopupWindow extends PopupWindow {

private Button btn_take_photo, btn_pick_photo, btn_cancel;
private View mMenuView;

public SelectPicPopupWindow(Activity context,OnClickListener itemsOnClick) {
super(context);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mMenuView = inflater.inflate(R.layout.alert_dialog, null);
btn_take_photo = (Button) mMenuView.findViewById(R.id.btn_take_photo);
btn_pick_photo = (Button) mMenuView.findViewById(R.id.btn_pick_photo);
btn_cancel = (Button) mMenuView.findViewById(R.id.btn_cancel);
//取消按鈕
btn_cancel.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
//銷毀彈出框
dismiss();
}
});
//設置按鈕監聽
btn_pick_photo.setOnClickListener(itemsOnClick);
btn_take_photo.setOnClickListener(itemsOnClick);
//設置SelectPicPopupWindow的View
this.setContentView(mMenuView);
//設置SelectPicPopupWindow彈出窗體的寬
this.setWidth(LayoutParams.FILL_PARENT);
//設置SelectPicPopupWindow彈出窗體的高
this.setHeight(LayoutParams.WRAP_CONTENT);
//設置SelectPicPopupWindow彈出窗體可點擊
this.setFocusable(true);
//設置SelectPicPopupWindow彈出窗體動畫效果
this.setAnimationStyle(R.style.AnimBottom);
//實例化一個ColorDrawable顏色為半透明
ColorDrawable dw = new ColorDrawable(0xb0000000);
//設置SelectPicPopupWindow彈出窗體的背景
this.setBackgroundDrawable(dw);
//mMenuView添加OnTouchListener監聽判斷獲取觸屏位置如果在選擇框外面則銷毀彈出框
mMenuView.setOnTouchListener(new OnTouchListener() {

public boolean onTouch(View v, MotionEvent event) {

int height = mMenuView.findViewById(R.id.pop_layout).getTop();
int y=(int) event.getY();
if(event.getAction()==MotionEvent.ACTION_UP){
if(y<height){
dismiss();
}
}
return true;
}
});

}

}

第三步:編寫MainActivity類實現測試:

Java代碼
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity extends Activity {

//自定義的彈出框類
SelectPicPopupWindow menuWindow;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) this.findViewById(R.id.text);
//把文字控制項添加監聽,點擊彈出自定義窗口
tv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//實例化SelectPicPopupWindow
menuWindow = new SelectPicPopupWindow(MainActivity.this, itemsOnClick);
//顯示窗口
menuWindow.showAtLocation(MainActivity.this.findViewById(R.id.main), Gravity.BOTTOM|Gravity.CENTER_HORIZONTAL, 0, 0); //設置layout在PopupWindow中顯示的位置
}
});
}

//為彈出窗口實現監聽類
private OnClickListener itemsOnClick = new OnClickListener(){

public void onClick(View v) {
menuWindow.dismiss();
switch (v.getId()) {
case R.id.btn_take_photo:
break;
case R.id.btn_pick_photo:
break;
default:
break;
}

}

};

}
上述的代碼實現了從底部彈出,也可以根據PopupWindow類設置從左下部彈出。
Android的對話框有兩種:PopupWindow和AlertDialog。它們的不同點在於:
AlertDialog的位置固定,而PopupWindow的位置可以隨意
AlertDialog是非阻塞線程的,而PopupWindow是阻塞線程的
PopupWindow的位置按照有無偏移分,可以分為偏移和無偏移兩種;按照參照物的不同,可以分為相對於某個控制項(Anchor錨)和相對於父控制項。具體如下
showAsDropDown(View anchor):相對某個控制項的位置(正左下方),無偏移
showAsDropDown(View anchor, int xoff, int yoff):相對某個控制項的位置,有偏移
showAtLocation(View parent, int gravity, int x, int y):相對於父控制項的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以設置偏移或無偏移

『伍』 華為手機導航欄被禁用,怎麼啟用

在系統設置里找到顯示,進入顯示裡面就能找到導航的開關。

華為技術有限公司,成立於1987年,總部位於廣東省深圳市龍崗區。華為是全球領先的信息與通信技術(ICT)解決方案供應商,專注於ICT領域,堅持穩健經營、持續創新、開放合作,在電信運營商、企業、終端和雲計算等領域構築了端到端的解決方案優勢,為運營商客戶、企業客戶和消費者提供有競爭力的ICT解決方案、產品和服務,並致力於實現未來信息社會、構建更美好的全聯接世界。2013年,華為首超全球第一大電信設備商愛立信,排名《財富》世界500強第315位。

華為的產品和解決方案已經應用於全球170多個國家,服務全球運營商50強中的45家及全球1/3的人口。2017年6月6日,《2017年BrandZ最具價值全球品牌100強》公布,華為名列第49位。2019年7月22日美國《財富》雜志發布了最新一期的世界500強名單 ,華為排名第61位。 2018年《中國500最具價值品牌》華為居第六位。12月18日,《2018世界品牌500強》揭曉,華為排名第58位。

『陸』 安卓原生系統的導航鍵怎麼隱藏收起來

安卓原生系統的導航鍵可以從設置顯示方式裡面隱藏

『柒』 華為手機系統導航欄被禁用怎麼解開

1. 為了防止點擊虛擬按鍵時誤觸到上方的應用圖標,在虛擬按鍵的最上方設置了很小的觸摸盲區。同時在三個導航欄中間也設置了觸摸盲區另外,為了防止誤觸啟動應用,在桌面點擊圖標打開應用時,需要點擊到應用圖標的中間位置才能啟動應用程序。
2. 單手操作時,手掌會與屏幕邊緣位置接觸,導致拇指不能操作屏幕,出現觸屏不靈,建議出現此情況時使用雙手操作手機。
3. 快速連續點擊虛擬按鍵時,偶現點擊不響應。此為安卓原生設計,為了避免誤觸有時不會響應導航欄操作。建議在操作虛擬按鍵時不要連續點擊過快。
4. 當長時間使用手機後手指出現汗液,屏幕出現臟污或沾上水漬時;當手指或屏幕上沾染了水滴時。建議您及時擦乾手指,定期清理屏幕,保持屏幕清潔乾燥。
5. 請檢查手套模式是否打開。手套模式會提升觸摸屏靈敏度,如果不需要用,建議關閉此模式。
6. 請檢查屏幕貼膜是否較厚。建議更換厚度不超過0.2毫米的貼膜。
7. 部分第三方軟體比如「一鍵鎖屏」會與系統自帶的鎖屏產生沖突,導致出現跳屏的現象,如跳到鎖屏界面、相機界面等情況。建議卸載第三方「一鍵鎖屏」等類型的軟體。
8. 請重啟手機。手機運行軟體過多會導致觸摸屏無反應。
9. 請將手機恢復出廠設置,或將手機升級到最新版本。
10. 經過上述操作後問題仍然存在,則可能是觸摸屏硬體出現問題,請提前備份好數據並攜帶購機發票前往售後服務點檢修。

『捌』 如何隱藏/顯示 android 系統的虛擬導航欄/按鍵

安卓 4.4 以上的版本支持隱藏導航欄,也就是那三個虛擬的按鍵,本篇經驗就介紹如何來隱藏著三個按鍵。
工具/原料
安卓4.4 以上版本的手機
方法/步驟
安卓4.4以上版本,增加了虛擬的三個按鍵,谷歌稱此三個按鈕為導航欄,這三個導航欄是可以隱藏起來的,以節省更多的屏幕空間。
點擊設置,進入手機設置。
步驟閱讀
在設置中,找到「導航欄可以隱藏」的設置項,將其開啟。
開啟後,立即生效,點擊返回。可以發現導航欄左邊多了一個V形的隱藏按鈕。點擊它即可隱藏導航欄。
隱藏後的效果。
步驟閱讀
如果需要讓導航欄再次出現,只需在屏幕底部,向上滑動
向上滑動之後,導航欄就再次顯示出來。

『玖』 android導航欄怎麼設置哪個顯示

實現方式應該有好幾種: 1、使用Layout_weight固定上下大小,中間的ListView同樣,同時中間的listView把它的高度可以設置成一個固定值。 2、還可以使用ViewPager控制項,也需要使用layout_weight按比例把界面分了。

熱點內容
php參數變數 發布:2025-01-09 10:42:06 瀏覽:661
桃花怎樣存儲 發布:2025-01-09 10:33:44 瀏覽:697
解壓縮好卡 發布:2025-01-09 10:18:16 瀏覽:795
物資補給站我的世界伺服器 發布:2025-01-09 10:18:09 瀏覽:65
伺服器ip顯示泛播 發布:2025-01-09 10:10:34 瀏覽:716
緩存火影圖片 發布:2025-01-09 10:05:00 瀏覽:649
設置消費密碼驗證的渠道是什麼 發布:2025-01-09 09:59:21 瀏覽:872
小米9域名伺服器地址 發布:2025-01-09 09:59:14 瀏覽:610
各類資料庫 發布:2025-01-09 09:58:30 瀏覽:257
php判斷進制 發布:2025-01-09 09:54:44 瀏覽:285