Câu hỏi Tôi có thể tạo mẫu nút Android không?


Tôi có một số nút trong ứng dụng hiện tại của mình. Chúng giống hệt nhau ngoại trừ văn bản và thẻ của chúng. Tệp main.xml sẽ đẹp hơn rất nhiều nếu tôi không phải lặp lại tất cả thông tin cấu hình nút cho mỗi nút.

Có cách nào để xác định một nút làm mẫu và sau đó sử dụng nó làm mẫu không?

Trong ví dụ này, tôi có khoảng 10 điều sau đây:

 <Button
            android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="10dp"
            android:text="Y"
            android:typeface="monospace"
            android:textSize="12pt"
            android:tag="Y"
            android:textColor="@color/button_text"
            android:background="@drawable/grey_blank_48x48"
            android:onClick="onButtonClicked"/>

Sẽ tốt hơn nếu tôi có, và sau đó là 9 trong số đó:

 <Button2
            android:text="N"
            android:tag="N"/>

Độ phân giải

Nó đã được khá nhiều như @ Luksprog nói:

<style name="ASR33_button" >
    <item name="android:id">@+id/button</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:padding">10dp</item>
    <item name="android:textColor">@color/button_text</item>
    <item name="android:background">@drawable/grey_blank_48x48</item>
    <item name="android:onClick">onButtonClicked</item>
    <item name="android:typeface">monospace</item>
    <item name="android:textSize">12pt</item>
</style>

với tệp main.xml có những thứ như sau:

   <Button
            style="@style/ASR33_button"
            android:tag="Y"
            android:text="Y"
            />

   <Button
            style="@style/ASR33_button"
            android:tag="N"
            android:text="N"
            />

Điều này mang ngày.


7
2018-04-07 17:50


gốc




Các câu trả lời:


Hoa Kỳ style:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="btnlook" >
        <item name="android:id">@+id/button</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:padding">10dp</item>
        <item name="android:textColor">@color/button_text</item>
        <item name="android:background">@drawable/grey_blank_48x48</item>
        <item name="android:onClick">onButtonClicked</item>
        <item name="android:typeface">monospace</item>
        <item name="android:textSize">12pt</item>
    </style>
</resources>

và sau đó trong bố cục xml của bạn:

<Button
            style="@style/btnlook"
            android:text="N"
            android:tag="N"/>

12
2018-04-07 18:03



Bah, chỉ cần nói rằng: p. Dunno tại sao không ai đề nghị ... - Tiago Almeida
1 À, tôi thà nghĩ một thứ như thế này sẽ tồn tại ... - Tony Ennis


Bạn có thể tạo chế độ xem tùy chỉnh mở rộng nút và đặt tất cả những thứ lặp lại. Sau đó, bạn có thể sử dụng nó như bạn mô tả, nhưng với một tên đầy đủ, không chỉ là tên ngắn.

class MyButton extends Button {
    public MyButton() {
        // Set the values you want
    }
}

Và trong XML:

<com.me.myapp.MyButton
    android:text="N"
    android:tag="N" />

3
2018-04-07 17:56



+1 điều này rất hữu ích. - Tony Ennis


Bạn có thể tạo một selector

<?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle">
    <solid android:color="#AAFFFFFF"/>
    <corners android:bottomRightRadius="7dp"
        android:bottomLeftRadius="7dp" 
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp"/>

Và đặt nút 10 android:background="@drawable/that_selecter"


0
2018-04-07 17:56





Cách duy nhất để làm điều này để làm cho nút tùy chỉnh subclassing nút.


0
2018-04-07 17:58