Middle
Kuidas siduda kasutaja vaade kasutaja paigutusega?
sobes.tech AI
Vastus AI-lt
On mitu viisi:
-
Kasutades konstruktorit koos
AttributeSet-iga: See on kõige levinum viis. View konstruktoris saab lugeda XML-ist atribuute ja neid rakendada.public class MyCustomView extends View { public MyCustomView(Context context, AttributeSet attrs) { super(context, attrs); // Atribuutide lugemine attrs-ist TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.MyCustomView); // Atribuutide väärtuste saamine, näiteks: // int someValue = a.getInt(R.styleable.MyCustomView_someAttribute, defaultValue); a.recycle(); // Oluline on vabastada TypedArray // View-i initsialiseerimine lugetud atribuutide põhjal // ... } // ... teised konstruktorid ja meetodid }XML-is saab neid atribuute kasutada järgmiselt:
<com.example.app.MyCustomView android:layout_width="wrap_content" android:layout_height="wrap_content" app:someAttribute="someValue" /> -
Layout-i inflatsioon View-i sees: Kui View koosneb mitmest teisest View-st, saab need inflatida eraldi XML-failist oma View-i sees.
public class MyCompositeView extends LinearLayout { public MyCompositeView(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater.from(context).inflate(R.layout.my_custom_layout, this, true); // Nüüd saab leida elemendid my_custom_layout-i seest // TextView myTextView = findViewById(R.id.myTextView); // ... } // ... teised konstruktorid ja meetodid }my_custom_layout.xmlvõib välja näha nii:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/myTextView" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Hello Custom Layout!" /> <!-- teised elemendid --> </LinearLayout>Seejärel saab seda
MyCompositeViewkasutada teises XML-failis:<com.example.app.MyCompositeView android:layout_width="match_parent" android:layout_height="wrap_content" />
Valik sõltub teie View-i keerukusest: lihtsate View-ide puhul piisab esimesest meetodist, keerulisemate puhul sobib teine.