中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

宣傳軟文范例優(yōu)化快速排名教程

宣傳軟文范例,優(yōu)化快速排名教程,天眼查企業(yè)查詢下載,網(wǎng)站開發(fā)執(zhí)行什么標準號序言 在做項目的時候,有時候需要一個全局統(tǒng)一的標題欄,保證項目風(fēng)格的統(tǒng)一,但是如果在每個activity上面都寫一遍這個標題欄就很麻煩了,我們經(jīng)常用的方法就是寫個基類Activity,然后當某個Activity需要這個統(tǒng)一的標題欄…

序言

在做項目的時候,有時候需要一個全局統(tǒng)一的標題欄,保證項目風(fēng)格的統(tǒng)一,但是如果在每個activity上面都寫一遍這個標題欄就很麻煩了,我們經(jīng)常用的方法就是寫個基類Activity,然后當某個Activity需要這個統(tǒng)一的標題欄的時候,繼承這個Activity就好了。

實現(xiàn)

1.實現(xiàn)我們需要的標題欄的視圖
例如:我們現(xiàn)在需要一個標題欄,左邊是Back按鈕,返回按鈕旁邊有文字提示,中間是文字顯示,右側(cè)是Home按鈕。
在這里插入圖片描述
我們需要在xml文件中寫出這種布局(代碼略)

2.創(chuàng)建View加載布局

public class NavBarLayout extends LinearLayout {private ImageView backNav;private TextView backName;private TextView centerName;private ImageView homeNav;private INavClickListener listener;public NavBarLayout(Context context) {super(context);init(context);}public NavBarLayout(Context context, AttributeSet attrs) {super(context, attrs);init(context);}public NavBarLayout(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);init(context);}public void setNavClickListener(INavClickListener iNavClickListener) {this.listener = iNavClickListener;}private void init(Context mContext) {LayoutInflater.from(mContext).inflate(R.layout.layout_top_nav_bar, this);backNav = findViewById(R.id.image_back);backName = findViewById(R.id.text_back);centerName = findViewById(R.id.ext_center);homeNav = findViewById(R.id.mage_home);//這是為了增大Back的返回按鈕點擊區(qū)域,將Back按鈕和Name區(qū)域放在一起LinearLayout llBack = findViewById(R.id.ll_back_tap);//默認實現(xiàn)listener = new INavClickListener() {@Overridepublic void backClick(Context context) {INavClickListener.super.backClick(context);}@Overridepublic void homeClick(Context context) {INavClickListener.super.homeClick(context);}};//點擊返回按鈕llBack.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {if (listener != null) {listener.backClick(mContext);}}});//點擊Home按鈕homeNav.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {if (listener != null) {listener.homeClick(mContext);}}});}/*** 設(shè)置返回按鈕圖片*/public NavBarLayout setNavBackImage(int res) {backNav.setImageResource(res);return this;}/*** 設(shè)置返回按鈕旁邊的文字*/public NavBarLayout setNavBackName(String text) {backName.setText(text);return this;}/*** 設(shè)置中間的文字*/public NavBarLayout setNavCenterText(String text) {centerName.setText(text);return this;}/*** 設(shè)置Home按鈕圖片*/public NavBarLayout setNavHomeImage(int res) {homeNav.setImageResource(res);return this;}/*** 設(shè)置中間文字是否顯示*/public NavBarLayout setNavCenterIsShow(boolean isShow) {if (isShow) {centerName.setVisibility(View.VISIBLE);} else {centerName.setVisibility(View.GONE);}return this;}/*** 設(shè)置Home圖案是否顯示*/public NavBarLayout setNavHomeIsShow(boolean isShow) {if (isShow) {homeNav.setVisibility(View.VISIBLE);} else {homeNav.setVisibility(View.GONE);}return this;}public interface INavClickListener {//默認實現(xiàn)點擊返回上一層default void backClick(Context context) {Activity activity = (Activity) context;activity.onBackPressed();};//默認實現(xiàn)跳轉(zhuǎn)到某個頁面(比如主頁面)default void homeClick(Context context) {//這里使用了DRouter框架實現(xiàn)頁面跳轉(zhuǎn)DRouter.build("/main").start(context);};}
}

這樣的話我們的View就實現(xiàn)了,接下來就是在基類里面使用。

3.基類使用
3.1創(chuàng)建基類的xml文件【layout_base】

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/ll_view_base"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#DBE5F1"android:orientation="vertical"><com.view.NavBarLayoutandroid:id="@+id/base_nav"android:layout_width="match_parent"android:layout_height="60dp"android:visibility="visible" /><FrameLayoutandroid:id="@+id/ll_child_view"android:layout_width="match_parent"android:layout_height="match_parent" /></LinearLayout>

這里我們使用一個上下布局的線性布局,上邊是我們的標題欄布局,下面我們使用了一個FrameLayout幀布局,強烈推薦使用這種布局,不容易產(chǎn)生各種莫名其妙的問題。我們以后使用這個FrameLayout加載我們的子類activity的布局。
3.2基類的Activity

public class BaseActivity extends AppCompatActivity {private NavBarLayout navBarLayout;@Overridepublic void setContentView(int layoutResID) {super.setContentView(R.layout.layout_base); // 設(shè)置整個布局為基礎(chǔ)布局Objects.requireNonNull(getSupportActionBar()).hide(); // 隱藏ActionBar/ToolbarFrameLayout parentView = findViewById(R.id.ll_child_view); // 獲取基礎(chǔ)布局中的父容器navBarLayout = findViewById(R.id.base_nav); // 獲取基礎(chǔ)布局中的導(dǎo)航欄View childView = LayoutInflater.from(this).inflate(layoutResID, parentView, false); // 根據(jù)傳入的布局資源ID,生成子視圖parentView.addView(childView); // 將子視圖添加到父容器中}@Overridepublic void setContentView(View childView) {super.setContentView(R.layout.layout_base);Objects.requireNonNull(getSupportActionBar()).hide();FrameLayout parentView = findViewById(R.id.ll_child_view);navBarLayout = findViewById(R.id.base_nav);parentView.addView(childView);}@Overridepublic void setContentView(View view, ViewGroup.LayoutParams params) {super.setContentView(R.layout.layout_base);Objects.requireNonNull(getSupportActionBar()).hide();FrameLayout parentView = findViewById(R.id.ll_child_view);navBarLayout = findViewById(R.id.base_nav);parentView.addView(view, params);}//是否展示我們的導(dǎo)航欄protected void showNavBar(boolean isShow) {if (isShow) {navBarLayout.setVisibility(View.VISIBLE);} else {navBarLayout.setVisibility(View.GONE);}}//給外界提供修改我們導(dǎo)航欄的方法protected NavBarLayout setNavBar() {return this.navBarLayout;}
}

這里面我們可以注意到,我們將這個【setContentView】實現(xiàn)了三次,這是非常有必要的,因為我們不知道將來我們到底使用哪一種方法將子Activity的視圖加載進來。

4.使用
我們創(chuàng)建一個activity,然后繼承這個基類的activity,這樣我們就可以使用了。通過我們的【setNavBar()】方法可以修改我們默認的一些顯示文字和進行我們默認設(shè)置的按鈕的點擊跳轉(zhuǎn)設(shè)置。

http://www.risenshineclean.com/news/2186.html

相關(guān)文章:

  • 和小學(xué)生做的黃色網(wǎng)站網(wǎng)絡(luò)營銷產(chǎn)品推廣方案
  • 如何做網(wǎng)站的cdn搜索引擎營銷
  • 東莞最新通報最新深圳網(wǎng)站快速排名優(yōu)化
  • 第一ppt網(wǎng)seo點石論壇
  • 南山做網(wǎng)站公司互聯(lián)網(wǎng)營銷案例分析
  • 成都最新規(guī)劃官方消息seo排名優(yōu)化公司價格
  • 網(wǎng)站被模仿怎么辦百度競價排名事件分析
  • 網(wǎng)站建設(shè)推廣方案jsurl中文轉(zhuǎn)碼
  • WordPress 團隊管理系統(tǒng)郴州seo外包
  • 自適應(yīng)網(wǎng)站制作類似互推商盟的推廣平臺
  • 做私房蛋糕在哪些網(wǎng)站寫東西關(guān)鍵詞競價排名是什么意思
  • 成都人才網(wǎng)seo關(guān)鍵詞排名系統(tǒng)
  • 邢臺今天的招工信息上海搜索引擎關(guān)鍵詞優(yōu)化
  • 信息服務(wù)類網(wǎng)站怎么做黑馬培訓(xùn)
  • 深圳網(wǎng)站維護公司企拓客軟件多少錢
  • 安卓手機應(yīng)用商店杭州seo網(wǎng)站
  • 短網(wǎng)址生成源碼下載seo優(yōu)化一般多少錢
  • 找源碼的網(wǎng)站數(shù)字營銷服務(wù)商seo
  • 國外做電商網(wǎng)站有哪些網(wǎng)絡(luò)營銷帶來的效果
  • 室內(nèi)設(shè)計風(fēng)格東莞seo優(yōu)化公司
  • 江蘇環(huán)泰建設(shè)有限公司網(wǎng)站西安seo主管
  • 在火爐做網(wǎng)站公園坐什么車網(wǎng)絡(luò)營銷圖片
  • 怎么自己建一個網(wǎng)站嗎今日熱榜
  • 福建做網(wǎng)站公司seo優(yōu)化招商
  • 樹莓派可以用wordpressseo網(wǎng)絡(luò)推廣培訓(xùn)
  • wordpress 批量圖片海會網(wǎng)絡(luò)做的網(wǎng)站怎么做優(yōu)化
  • 盤縣 網(wǎng)站建設(shè)免費培訓(xùn)網(wǎng)站
  • 網(wǎng)站搜索算法免費的鄭州網(wǎng)絡(luò)推廣服務(wù)
  • 和網(wǎng)站開發(fā)公司如何簽合同網(wǎng)站快速排名的方法
  • 電子商務(wù)網(wǎng)站建設(shè)與維護實訓(xùn)報告windows優(yōu)化大師最新版本