我正在制作计算器用户界面。当屏幕进入横向模式但是没有制作单独的布局 - 土地文件并复制所有元素时,如何覆盖和添加一些元素参数?例如,我想改变一些按钮的宽度和高度,并可能添加一些额外的按钮,但其他一切保持不变
我的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);
}
}
答案 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
添加新的布局文件,但它们将共享相同的内部布局按钮文件,因此您不会复制这两个文件之间的任何按钮。