簡體   English   中英

Android:創建自定義RelativeLayout

[英]Android: Creating custom RelativeLayout

我有這個觀點

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView10"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Large Text"
    android:id="@+id/textView11"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="New Text"
    android:id="@+id/textView12"
    android:layout_below="@+id/textView11"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="55dp" />

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:text="Medium Text"
    android:id="@+id/textView13"
    android:layout_below="@+id/textView11"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

我想創建一個RelativeLayout的自定義子類,每個添加的項都是這個視圖,添加它們就像這樣: myCustomRelativeLayout.addItem("text1", "text2", "text3", "text4", marginTop, height) ,如何我這樣做嗎?

如果我添加3個這樣的視圖,它會是什么樣子:

myCustomRelativeLayout.addItem("left1", "left one", "right1","right one", o, 200);
myCustomRelativeLayout.addItem("left2", "left two", "right2","right two", 150, 200);
myCustomRelativeLayout.addItem("left3", "left three", "right3","right three", 350, 200);

我不是專家,歡迎詳細解釋

您可以通過使用這些文本創建自定義視圖並將該自定義視圖添加到另一個布局來實現:

public class CustomView extends RelativeLayout implements View.OnClickListener{

public TextView ClassName, Room, StartingTime, EndingTime;
public float Size;
public RelativeLayout mContainer;

// constructor
public CustomView (Context context, String subject, String room, String startingTime, String endingTime, int background, double size) {
    super(context);
    init(context);
    ClassName.setText(subject );
    Room.setText(room );
    StartingTime.setText(startingTime);
    EndingTime.setText(endingTime);
    mContainer.setBackgroundColor(background);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int)size);
    params.setMargins(3,0,3,0);
    mContainer.setLayoutParams(params2); 
}


private void init(Context context) {
    LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    mInflater.inflate(R.layout.my_view, this, true);

    this.mContainer = (RelativeLayout)findViewById(R.id.ClassContainer);
    this.ClassName = (TextView)findViewById(R.id.theClassName);
    this.Room = (TextView)findViewById(R.id.theClassRoom);
    this.StartingTime = (TextView)findViewById(R.id.theClassStartingTime);
    this.EndingTime = (TextView)findViewById(R.id.theClassEndingTime);
}

像這樣創建一個:

CustomView mClass = new Schedule_Class_mini(getActivity(),
                                "Math",
                                "Room 8",
                                "10:30",
                                "12:00",
                                Color.parseColor("#508ACCA4"),
                                150);

Container.addView(mClass, params);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM