在 xml 布局中添加小部件

Posted

技术标签:

【中文标题】在 xml 布局中添加小部件【英文标题】:Adding widgets in xml layout 【发布时间】:2014-10-17 17:16:06 【问题描述】:

我正在构建一个 android 应用程序,我从某个网站复制了一些 xml。我想做的是在屏幕底部的最右边添加按钮,但没有成功。有两种布局和其中一个与其他合并。我不知道在哪里编辑和放置按钮。我很困惑。请帮我把它放在哪里.. 第一个 xml card_representation :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:layout_gravity="center_horizontal"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="5dp" >

    <ImageView
        android:id="@+id/card"
        android:layout_
        android:layout_
        android:background="@drawable/card_border"
        android:gravity="center"
        android:scaleType="centerCrop"
        android:src="@drawable/emv_card_background" />

    <TextView
        android:id="@+id/bankName"
        android:layout_
        android:layout_
        android:layout_alignTop="@+id/card"
        android:layout_marginLeft="25dp"
        android:layout_marginTop="25dp"
        android:gravity="center"
        android:text="Bank"
        android:textColor="#999999"
        android:textScaleX="1"
        android:textSize="25sp"
        android:textStyle="bold" >
    </TextView>

    <TextView
        android:id="@+id/cardNumber"
        android:layout_
        android:layout_
        android:layout_alignTop="@+id/card"
        android:layout_marginTop="77dp"
        android:gravity="center"
        android:text="3456 5456 6578 6543"
        android:textColor="@android:color/black"
        android:textSize="21sp"
        android:textStyle="bold" >
    </TextView>

    <LinearLayout
        android:layout_
        android:layout_
        android:layout_alignTop="@+id/cardNumber"
        android:layout_marginLeft="95dp"
        android:layout_marginTop="35dp"
        android:gravity="center"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/cardValidityLabel"
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:layout_marginRight="5dp"
            android:gravity="left|center_vertical"
            android:text="Expire"
            android:textColor="@android:color/black"
            android:textSize="11sp"
            android:textStyle="bold" >
        </TextView>

        <TextView
            android:id="@+id/cardValidity"
            android:layout_
            android:layout_
            android:layout_gravity="center"
            android:gravity="left"
            android:text="12/14"
            android:textColor="@android:color/black"
            android:textSize="14sp"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

    <ImageView
        android:id="@+id/type"
        android:layout_
        android:layout_
        android:layout_alignBottom="@+id/card"
        android:layout_alignRight="@+id/card"
        android:layout_marginBottom="15dp"
        android:layout_marginRight="10dp"
        android:scal

第二个 xml 是 card_detail:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/card_detail"
        android:layout_
        android:layout_
        android:background="#f5f5f5"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="gone" >

        <LinearLayout
            android:layout_
            android:layout_
            android:orientation="vertical" >

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_marginTop="15dp"
                android:background="@drawable/cardui"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/card_detail_title"
                    android:layout_
                    android:layout_
                    android:layout_marginBottom="15dp"
                    android:text="@string/card_representation_title"
                    android:textColor="#999"
                    android:textSize="13sp"
                    android:textStyle="bold" />
                      <include layout="@layout/card_representation" />
            </LinearLayout>

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_marginTop="15dp"
                android:layout_marginBottom="15dp"
                android:background="@drawable/cardui"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/extended_card_detail_title"
                    android:layout_
                    android:layout_
                    android:layout_marginBottom="15dp"
                    android:text="@string/extended_card_detail_title"
                    android:textColor="#999"
                    android:textSize="13sp"
                    android:textStyle="bold" />

                <TableLayout
                    android:id="@+id/extended_content"
                    android:layout_
                    android:layout_
                    android:paddingBottom="7dp"
                    android:shrinkColumns="1"
                     >

                </TableLayout>
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/emptyView"
        android:layout_
        android:layout_
        android:background="#FFF"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="10dp" >

        <ImageView
            android:id="@+id/contactLessImg"
            android:layout_
            android:layout_
            android:scaleType="fitCenter"
            android:src="@drawable/contactless" />

        <TextView
            android:id="@+id/textView"
            android:layout_
            android:layout_
            android:gravity="center"
            android:text="@string/paycard_back_text"
            android:textSize="17sp"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

</LinearLayout>

这种布局的屏幕看起来像:

我想在右侧屏幕底部添加按钮。我应该在哪里编辑..请帮忙 提前致谢

【问题讨论】:

【参考方案1】:

给你。用这个编辑card_detail:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/card_detail"
        android:layout_
        android:layout_
        android:background="#f5f5f5"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingBottom="10dp"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:visibility="gone" >

        <LinearLayout
            android:layout_
            android:layout_
            android:orientation="vertical" >

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_marginTop="15dp"
                android:background="@drawable/cardui"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/card_detail_title"
                    android:layout_
                    android:layout_
                    android:layout_marginBottom="15dp"
                    android:text="@string/card_representation_title"
                    android:textColor="#999"
                    android:textSize="13sp"
                    android:textStyle="bold" />
                      <include layout="@layout/card_representation" />
            </LinearLayout>

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_marginTop="15dp"
                android:layout_marginBottom="15dp"
                android:background="@drawable/cardui"
                android:orientation="vertical" >

                <TextView
                    android:id="@+id/extended_card_detail_title"
                    android:layout_
                    android:layout_
                    android:layout_marginBottom="15dp"
                    android:text="@string/extended_card_detail_title"
                    android:textColor="#999"
                    android:textSize="13sp"
                    android:textStyle="bold" />

                <TableLayout
                    android:id="@+id/extended_content"
                    android:layout_
                    android:layout_
                    android:paddingBottom="7dp"
                    android:shrinkColumns="1"
                     >

                </TableLayout>
            </LinearLayout>
            <Button
            android:id="@+id/button1"
            android:layout_
            android:layout_
            android:layout_alignParentRight="true"
            android:layout_marginRight="17dp"
            android:layout_marginTop="29dp"
            android:text="Proceed" />
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:id="@+id/emptyView"
        android:layout_
        android:layout_
        android:background="#FFF"
        android:gravity="center"
        android:orientation="vertical"
        android:padding="10dp" >

        <ImageView
            android:id="@+id/contactLessImg"
            android:layout_
            android:layout_
            android:scaleType="fitCenter"
            android:src="@drawable/contactless" />

        <TextView
            android:id="@+id/textView"
            android:layout_
            android:layout_
            android:gravity="center"
            android:text="@string/paycard_back_text"
            android:textSize="17sp"
            android:textStyle="bold" >
        </TextView>
    </LinearLayout>

</LinearLayout>

【讨论】:

以上是关于在 xml 布局中添加小部件的主要内容,如果未能解决你的问题,请参考以下文章

Android桌面小部件AppWidget开发

Kivy 在布局末尾添加小部件

使用属性窗口在 QT 网格布局中设置小部件的行和列

Qt 创建者:小部件未添加到布局中

尽管更新了小部件,但 Pyqt5 更新的小部件未添加到布局中

无法在注册为工厂小部件的 kivy 布局中添加对象