自定義元件
一、建立一個資原始檔
起個名字
二、去掉系統自帶的標題欄
效果:
執行之後還有ACtivityBar
三、去掉ActivityBar
在.java檔案中
ActionBar actionBar = getSupportActionBar();
if(actionBar != null){
actionBar.hide(); // 隱藏ActivityBar
}
四、自定義元件
**<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="10dp"
android:backgroundTint="#ff0000"
android:bufferType="normal"
android:text="Back"
android:textAllCaps="true"
android:textSize="20sp"
app:cornerRadius="20dp" />
<TextView
android:layout_weight="1"
android:text="Title Text"
android:textColor="#ffffff"
android:gravity="center"
android:padding="10dp"
android:textSize="30sp"
android:textStyle="bold"
android:layout_gravity="top"
android:layout_width="0dp"
android:layout_height="match_parent"/>
<Button
android:text="Edit"
android:textSize="20sp"
android:textStyle="bold"
android:layout_gravity="center_vertical"
android:layout_marginRight="10dp"
android:backgroundTint="#3388dd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>**
效果:
五、在一個視窗中使用自定義元件
加入這一句話就好
<include layout="@layout/title" />
<!--匯入自定義的標題欄視窗-->
效果:
六、對標題欄進行深一步的定製
新建一個java類
繼承LineLayout佈局
設定按鈕和文字的功能
public class TitleLayout extends LinearLayout {
// context:當前活動視窗 attrs:屬性的集合
public TitleLayout(Context context,AttributeSet attrs) {
super(context, attrs);
// 從後臺獲取資源
View view = LayoutInflater.from(context).inflate(R.layout.title,this);
// 提取三個元件
Button btnBack = view.findViewById(R.id.btn_Back);
Button btnEdit = view.findViewById(R.id.btn_Edit);
TextView tvText = view.findViewById(R.id.Tv_Text);
/*設定文字顯示文字資訊*/
// 如果是當前視窗
if(context.getClass().getSimpleName().equals("ConstraintLayout")){
tvText.setText("Message");
}
// 定製功能
/* 設定按鍵的監聽器*/
btnBack.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
((Activity)context).finish(); // 將當前活動視窗關閉
}
});
/* 給出一條訊息顯示*/
btnEdit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, "你點選了編輯按鈕" + context.getClass().getSimpleName(), Toast.LENGTH_SHORT).show();
}
});
}
在執行的時候需要修改活動視窗中的呼叫方式
**<com.example.talkframe.TitleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>**
效果:
標題欄的文字會根據視窗的不同而不同
點選編輯按鈕會彈出
點選Back按鈕會返回
今天8點起床,算是一個突破,不得不去記錄一下,怎麼說呢,今天也是一個漫長的一天吧
相關文章
- Android自定義控制元件之自定義組合控制元件Android控制元件
- vue自定義全域性元件(或自定義外掛)Vue元件
- Android自定義控制元件——自定義屬性Android控制元件
- svelte元件:Svelte3自定義Navbar+Tabbr元件|svelte自定義外掛元件
- 4. 自定義控制元件(4) --- 自定義屬性控制元件
- Android自定義控制元件之自定義屬性Android控制元件
- Android 自定義UI元件AndroidUI元件
- Laravel 自定義檢視元件Laravel元件
- 自定義Switch控制元件控制元件
- 自定義控制元件ViewPager控制元件Viewpager
- vue 自定義報警元件Vue元件
- 控制元件自定義位置控制元件
- 如何自定義控制元件控制元件
- Preference元件探究之自定義Preference元件
- Flutter 之 自定義控制元件Flutter控制元件
- uniapp 自定義彈窗元件APP元件
- iOS自定義控制元件 AlertViewiOS控制元件View
- iOS自定義控制元件 SegmentiOS控制元件
- WPF Blend 自定義控制元件控制元件
- 自定義彈幕控制元件控制元件
- 自定義分頁控制元件控制元件
- winform 自定義容器控制元件ORM控制元件
- Android自定義組合控制元件之自定義屬性Android控制元件
- WPF 自定義控制元件的坑(蠢的:自定義控制元件內容不顯示)控制元件
- android 自定義控制元件 自定義屬性詳細介紹Android控制元件
- 自定義控制元件之歌詞RCL控制元件控制元件
- Flutter 自定義縮放控制元件Flutter控制元件
- Flutter動畫之自定義動畫元件-FlutterLayoutFlutter動畫元件
- 自定義react資料驗證元件React元件
- iOS自定義控制元件 SlideriOS控制元件IDE
- Qt實現自定義控制元件QT控制元件
- 自定義百度地圖元件地圖元件
- Vue + Element 自定義上傳封面元件Vue元件
- flutter - 自定義 Drawer 元件(不依賴 Scaffold)Flutter元件
- android:建立自定義控制元件Android控制元件
- 自定義UIView UITableViewCell等控制元件UIView控制元件
- Appfuse:新增自定義頁面元件APP元件
- 自定義下拉選單控制元件控制元件
- 自定義的ValidationSummary控制元件控制元件