添加没有单独布局文件的元素(Android)

时间:2017-04-05 13:55:32

标签: android xml android-layout

我正在制作计算器用户界面。当屏幕进入横向模式但是没有制作单独的布局 - 土地文件并复制所有元素时,如何覆盖和添加一些元素参数?例如,我想改变一些按钮的宽度和高度,并可能添加一些额外的按钮,但其他一切保持不变

我的activity_main.xml

 <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout 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"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.mat.calculator.MainActivity">

        <android.support.design.widget.AppBarLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/AppTheme.AppBarOverlay">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                android:background="?attr/colorPrimary"
                app:popupTheme="@style/AppTheme.PopupOverlay" />

        </android.support.design.widget.AppBarLayout>

        <include layout="@layout/content_main"></include>

    </android.support.design.widget.CoordinatorLayout>

我的content_main.xml定义了我的UI:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.mat.calculator.MainActivity"
    tools:showIn="@layout/activity_main">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

>

        <TextView
            android:id="@+id/infoTextViewTop"
            style="@style/textViewSpace"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="50dp"
            android:textSize="30sp"
            android:text=" - - - "/>

    </RelativeLayout>

    <android.support.percent.PercentRelativeLayout
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        >
        <Button
            android:id="@+id/button00"
            android:text="mc"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button10"
            android:text="m+"
            android:layout_toRightOf="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button20"
            android:text="m-"
            android:layout_toRightOf="@id/button10"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button30"
            android:text="mr"
            android:layout_toRightOf="@id/button20"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button01"
            android:text="C"
            android:layout_below="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button11"
            android:text="\u00F7"
            android:layout_below="@id/button00"
            android:layout_toRightOf="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button21"
            android:text="\u00D7"
            android:layout_below="@id/button00"
            android:layout_toRightOf="@id/button10"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button31"
            android:text="\u232B"
            android:layout_below="@id/button00"
            android:layout_toRightOf="@id/button20"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button02"
            android:text="7"
            android:layout_below="@id/button01"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button12"
            android:text="8"
            android:layout_below="@id/button01"
            android:layout_toRightOf="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button22"
            android:text="9"
            android:layout_below="@id/button01"
            android:layout_toRightOf="@id/button10"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button32"
            android:text="\u2212"
            android:layout_below="@id/button01"
            android:layout_toRightOf="@id/button20"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button03"
            android:text="4"
            android:layout_below="@id/button02"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button13"
            android:text="5"
            android:layout_below="@id/button02"
            android:layout_toRightOf="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button23"
            android:text="6"
            android:layout_below="@id/button02"
            android:layout_toRightOf="@id/button10"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button33"
            android:text="\u002B"
            android:layout_below="@id/button02"
            android:layout_toRightOf="@id/button20"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button04"
            android:text="1"
            android:layout_below="@id/button03"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button14"
            android:text="2"
            android:layout_below="@id/button03"
            android:layout_toRightOf="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button24"
            android:text="3"
            android:layout_below="@id/button03"
            android:layout_toRightOf="@id/button10"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button34"
            android:text="\u003D"
            android:layout_below="@id/button03"
            android:layout_toRightOf="@id/button20"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="32%" />
        <Button
            android:id="@+id/button05"
            android:text="\u0025"
            android:layout_below="@id/button04"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button15"
            android:text="0"
            android:layout_below="@id/button04"
            android:layout_toRightOf="@id/button00"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />
        <Button
            android:id="@+id/button25"
            android:text="."
            android:layout_below="@id/button04"
            android:layout_toRightOf="@id/button10"
            app:layout_widthPercent="25%"
            app:layout_heightPercent="16%" />

    </android.support.percent.PercentRelativeLayout>


</LinearLayout>

MainActivity:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
    }
}

1 个答案:

答案 0 :(得分:0)

values.xml文件夹下更改高度/宽度很容易,打开(或创建)values,像这样添加尺寸:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="btn_width">20%</dimen>
</resources>

在名为values.xml的文件夹中创建另一个values-land(如果需要,创建文件夹),并将以下内容添加到其中:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="btn_width">30%</dimen>
</resources>

现在在你的布局xml文件中,使用它如下:

android:layout_widthPercent="@dimen/btn_width"

现在,如果您想实际更改布局,就像添加更多按钮一样,您可以做的是导出共享布局块(您将按钮矩阵定义为新的xml文件) “buttons.xml”,并将其包含在您的content_main.xml文件中。 在layout-land文件夹中创建一个新的布局xml“包装器”文件,其中包含所需的更改,并在其中包含buttons.xml

您将向layout-land添加新的布局文件,但它们将共享相同的内部布局按钮文件,因此您不会复制这两个文件之间的任何按钮。