【问题标题】:Trying to override xml file of stripe试图覆盖条带的xml文件
【发布时间】:2021-04-06 03:47:04
【问题描述】:

我正在尝试覆盖条纹的 xml 以在框架布局内水平显示 Edittext

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <com.stripe.android.view.CardBrandView
        android:id="@+id/card_brand_view"
        android:layout_width="@dimen/card_brand_view_width"
        android:layout_height="@dimen/card_brand_view_height"
        android:layout_marginTop="@dimen/stripe_card_icon_padding"
        android:layout_marginBottom="@dimen/stripe_card_icon_padding"
        android:layout_marginEnd="@dimen/stripe_card_icon_padding"
        />

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:layout_gravity="center_vertical"
        >

        <!-- The accessibilityTraversalBefore attribute is ignored in sdk < 22 -->
        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/card_number_text_input_layout"
            android:labelFor="@id/card_number_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:visibility="visible"
            android:background="@android:color/transparent"
            tools:ignore="UnusedAttribute"
            android:accessibilityTraversalBefore="@+id/text_input_expiry_date"
            android:nextFocusRight="@+id/text_input_expiry_date"
            android:nextFocusForward="@+id/text_input_expiry_date"
            android:nextFocusDown="@+id/text_input_expiry_date"
            android:contentDescription="@string/acc_label_card_number"
            android:accessibilityLiveRegion="polite"
            app:hintEnabled="false"
            style="@style/Stripe.CardInputWidget.TextInputLayout">
            <com.stripe.android.view.CardNumberEditText
                android:id="@+id/card_number_edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:imeOptions="actionNext"
                android:hint="@string/card_number_hint"
                style="@style/Stripe.CardInputWidget.EditText"
                />
        </com.google.android.material.textfield.TextInputLayout>

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/expiry_date_text_input_layout"
            android:labelFor="@id/expiry_date_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/stripe_card_expiry_initial_margin"
            android:layout_gravity="start"
            android:visibility="visible"
            android:background="@android:color/transparent"
            tools:ignore="UnusedAttribute"
            android:accessibilityTraversalBefore="@+id/text_input_cvc"
            android:accessibilityTraversalAfter="@+id/text_input_card_number"
            android:nextFocusRight="@+id/text_input_cvc"
            android:nextFocusForward="@+id/text_input_cvc"
            android:nextFocusDown="@+id/text_input_cvc"
            android:nextFocusLeft="@id/text_input_card_number"
            android:nextFocusUp="@id/text_input_card_number"
            android:contentDescription="@string/acc_label_expiry_date"
            android:accessibilityLiveRegion="polite"
            app:hintEnabled="false"
            style="@style/Stripe.CardInputWidget.TextInputLayout">
            <com.stripe.android.view.ExpiryDateEditText
                android:id="@+id/expiry_date_edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:imeOptions="actionNext"
                android:digits="@string/stripe_expiration_date_allowlist"
                android:hint="@string/expiry_date_hint"
                style="@style/Stripe.CardInputWidget.EditText"
                />
        </com.google.android.material.textfield.TextInputLayout>

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/cvc_text_input_layout"
            android:labelFor="@id/cvc_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/stripe_card_cvc_initial_margin"
            android:layout_gravity="start"
            android:background="@android:color/transparent"
            tools:ignore="UnusedAttribute"
            android:accessibilityTraversalAfter="@+id/text_input_expiry_date"
            android:nextFocusLeft="@id/text_input_expiry_date"
            android:nextFocusUp="@id/text_input_expiry_date"
            android:contentDescription="@string/cvc_number_hint"
            android:accessibilityLiveRegion="polite"
            app:hintEnabled="false"
            style="@style/Stripe.CardInputWidget.TextInputLayout">
            <com.stripe.android.view.CvcEditText
                android:id="@+id/cvc_edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:imeOptions="actionDone"
                style="@style/Stripe.CardInputWidget.EditText"
                />
        </com.google.android.material.textfield.TextInputLayout>

        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/postal_code_text_input_layout"
            android:labelFor="@id/postal_code_edit_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone"
            android:layout_marginStart="@dimen/stripe_card_cvc_initial_margin"
            android:layout_gravity="start"
            android:background="@android:color/transparent"
            tools:ignore="UnusedAttribute"
            android:accessibilityTraversalAfter="@+id/text_input_cvc"
            android:nextFocusLeft="@id/text_input_cvc"
            android:nextFocusUp="@id/text_input_cvc"
            android:contentDescription="@string/address_label_postal_code"
            android:accessibilityLiveRegion="polite"
            app:hintEnabled="false"
            style="@style/Stripe.CardInputWidget.TextInputLayout">
            <com.stripe.android.view.PostalCodeEditText
                android:id="@+id/postal_code_edit_text"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:imeOptions="actionDone"
                android:enabled="false"
                style="@style/Stripe.CardInputWidget.EditText"
                />
        </com.google.android.material.textfield.TextInputLayout>

    </FrameLayout>
</merge>

这是我从条带库中使用的代码,我正在尝试覆盖它,我的要求是使用 ma​​tch_parent 将所有 editText 字段水平显示,并将 edittext 水平显示为 4 行

  1. 卡号
  2. CVC
  3. 到期日期
  4. 邮政编码

谢谢 问候

【问题讨论】:

  • 我觉得如果要实现堆栈效果,最好使用LinearLayout或者RelativeLayout而不是FrameLayout。或者您可以使用 android:layout_gravity 进行框架布局,看看它是否符合您的需要

标签: android stripe-payments


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多