android 빠 른 개발 (3) 공공 제목 표시 줄 사용: 매번 activity 가 제목 표시 줄 을 쓰 지 않도록 합 니 다.
주: 부모 클래스 계승 법 으로 매번 activity 를 만 들 때마다 include 제목 표시 줄 을 피하 고 제목 표시 줄 의 각 작업 을 초기 화 합 니 다.
MainActivity 코드 와 xml 먼저 보기:
package com.yqy.yqy_commontitlebar;
import android.view.View.OnClickListener;
public class MainActivity extends CommonActivity {
@Override
public void init() {
setTitleAndContentLayoutId(" ", R.layout.activity_main);
}
@Override
public OnClickListener getBackOnClickLisener() {
return null;
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
코드 가 간결 하고 제목 표시 줄 텍스트, 제목 표시 줄 이 생각 하 는 레이아웃 과 마음대로 되 돌아 오 는 이벤트 가 있 습 니 다.
이것들 은 모두 CommonActivity 덕분 입 니 다.
package com.yqy.yqy_commontitlebar;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
public abstract class CommonActivity extends FragmentActivity {
private TextView leftTv, centerTv, rightTv;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.common_title_bar);
leftTv = (TextView) findViewById(R.id.leftTv);
centerTv = (TextView) findViewById(R.id.centerTv);
rightTv = (TextView) findViewById(R.id.rightTv);
if (getBackOnClickLisener() == null) {
leftTv.setOnClickListener(new BackOnClickLisener());
} else {
leftTv.setOnClickListener(getBackOnClickLisener());
}
init();
}
/**
*
* @author yqy
* @date 2016-1-7 3:44:55
* @param title
* @param layoutId
*/
public void setTitleAndContentLayoutId(String title, int layoutId) {
getLayoutInflater().inflate(layoutId,
(ViewGroup) centerTv.getParent().getParent());
centerTv.setText(title);
}
public abstract void init();
public abstract OnClickListener getBackOnClickLisener();
class BackOnClickLisener implements OnClickListener {
@Override
public void onClick(View arg0) {
finish();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
leftTv.performClick();
return true;
}
return super.onKeyDown(keyCode, event);
}
}
OnCreare 방법 제목 표시 줄 레이아웃 초기 화 및 이벤트 클릭
setTitleAndContentLayoutId (String title, int layoutId) 는 제목 표시 줄 의 제목 텍스트 와 주요 레이아웃 을 설정 합 니 다.
두 가지 방법 이 있 습 니 다. 앞 에 Public abstract 수식 문자 가 있 는 것 은 하위 클래스 를 복사 하 는 것 입 니 다. 부모 클래스 호출
제목 표시 줄 레이아웃 붙 이기:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="48dp" >
<TextView
android:id="@+id/leftTv"
android:layout_width="40dp"
android:layout_height="35dp"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:gravity="center"
android:text=" " />
<TextView
android:id="@+id/centerTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text=" "
android:textSize="20sp" />
<TextView
android:id="@+id/rightTv"
android:layout_width="40dp"
android:layout_height="35dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:gravity="center"
android:text=" " />
</RelativeLayout>
<View android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="@android:color/background_dark"/>
</LinearLayout>
이상 의 예 는 모두 문자 버튼 이지 만 자신의 필요 에 따라 조금 만 고 쳐 주시 면 됩 니 다.
마지막 으로 '개원 만세!'
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.