android 사용자 정의 컨트롤 과 사용자 정의 속성
1. 컨트롤 조합, 컨트롤 에 대한 하위 view 는 이미 알 고 있 고 고정된 상황 입 니 다. 예 를 들 어 아래 와 같 습 니 다.설명 할 xml 가 필요 합 니 다.
2. 이미 있 는 컨트롤 을 계승 합 니 다. 예 를 들 어 페이지 별 listview
3. 컨트롤 의 하위 View 가 확실 하지 않 습 니 다. 사용 할 때 xml 설정, 예 를 들 어 workspce celllayot 등 입 니 다.
하위 뷰 내용 불 확정
1. 이 사용자 정의 컨트롤 은 두 개의 TextView 와 하나의 Button 으로 구성 되 어 있 습 니 다. view_fixissue_button_toolbar_item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/handle_item_residual"
style="@miui:style/Widget.ListView.Item.DoubleLine"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="15dip"
android:layout_weight="1" >
<TextView
android:id="@+id/title"
style="@miui:style/TextAppearance.List.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/summary"
style="@miui:style/TextAppearance.List.Secondary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/title" />
</RelativeLayout>
<Button
android:id="@+id/fix_button"
style="@miui:style/Widget.Button.Positive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
<!-- android:background="@drawable/action_btn" -->
</LinearLayout>
2. ButtonToolbarItemView 에서 inflate 위의 레이아웃 파일, TypedArray 사용자 정의 속성 사용 방법 에 주의 하 십시오.
package com.miui.virtualsim.ui;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.CompoundButton.OnCheckedChangeListener;
import miui.widget.SlidingButton;
import com.miui.virtualsim.R;
public class ButtonToolbarItemView extends RelativeLayout{
private TextView mTitleView;
private TextView mSummaryView;
private Button mButton;
private String mButtonText;
private String mTitleText;
private String msummaryText;
public ButtonToolbarItemView(Context context) {
this(context, null);
}
public ButtonToolbarItemView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public ButtonToolbarItemView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MainToolbarItemView);
mTitleText = a.getString(R.styleable.MainToolbarItemView_item_name);
msummaryText = a.getString(R.styleable.MainToolbarItemView_item_desc);
mButtonText = a.getString(R.styleable.MainToolbarItemView_item_button);
a.recycle();
View.inflate(context, R.layout.view_fixissue_button_toolbar_item, this);
mTitleView = (TextView) findViewById(R.id.title);
mTitleView.setText(mTitleText);
mSummaryView = (TextView) findViewById(R.id.summary);
mSummaryView.setText(msummaryText);
mButton = (Button) findViewById(R.id.fix_button);
mButton.setText(mButtonText);
}
public void setTitleViewText (String str) {
mTitleView.setText(str);
}
public void setSummaryText (String str) {
mSummaryView.setText(str);
}
public void setFixButtonText(String str){
mButton.setText(str);
}
public Button getFixButton(){
return mButton;
}
}
3. 사용자 정의 속성 attrs. xml 정의
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="MainToolbarItemView">
<attr name="item_name" format="string" />
<attr name="item_desc" format="string" />
<attr name="item_button" format="string" />
</declare-styleable>
</resources>
4. 우리 가 정의 한 컨트롤 을 사용 합 시다
<com.miui.virtualsim.ui.ButtonToolbarItemView
android:id="@+id/main_toolbar_internet_by_wifi"
android:layout_width="wrap_content"
android:layout_height="56.67dip"
android:clipChildren="false"
miui:item_button="@string/bills_text"
miui:item_desc="@string/bills_text"
miui:item_name="@string/bills_text" />
자동 의미 속성 을 사 용 했 기 때문에 사용 할 때 네 임 스페이스 를 추가 합 니 다.
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:miui="http://schemas.android.com/apk/res/com.miui.virtualsim"
android:layout_width="match_parent"
사실 사용자 정의 컨트롤 은 간단 합 니 다. 바로 onMeasure onLayout 입 니 다. onTouch 에 Listener 를 추가 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.