我刚下载了新的Android Studio应用程序,我在他们的网站上开始了培训。我正在“构建您的第一个Android应用程序”和“构建一个简单的用户界面”的一部分。但是,他们告诉我编辑的文件是activity_my.xml,但是所有内容都指向我布局中名为content_my.xml的另一个文件。所以我编辑了那个文件并让设计工作,但是当我点击返回activity_my.xml时,设计就完全不存在了。
activity_my.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"
android:fitsSystemWindows="true"
tools:context=".MyActivity">
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
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_my" />
<android.support.design.widget.FloatingActionButton android:id="@+id/fab"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin"
android:src="@android:drawable/ic_dialog_email" />
content_my.xml的代码(我根据培训编辑的内容)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="match_parent">
<EditText
android:id="@+id/edit_message"
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/edit_message" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_send" />
对于琴弦,我也做过培训所要求的内容:
<resources>
<string name="app_name">My First App</string>
<string name="action_settings">Settings</string>
<string name="button_send">Send</string>
<string name="edit_message">Enter a message</string>
使用模拟器运行应用程序后,我会得到:
Doesn't run the correct design as viewed on the application
我应该得到这个:
答案 0 :(得分:0)
通常,ActionBar会保留空间并相应地按下内容,但与工具栏匹配的新AppBarLayout不会这样做。这意味着需要告知其他布局AppBarLayout是否能正确定位自己 你的布局没有这样做,所以AppBarLayout隐藏了EditText和Button。
将其添加到content_my.xml
中的LinearLayoutapp:layout_behavior="@string/appbar_scrolling_view_behavior"
我99.9%确定在创建新项目时此代码处于默认活动中,因此您在编辑文件时必须删除它。
现在默认情况下,标准活动布局分为两部分(如果需要,可以通过将content_my.xml的内容复制到activity_my.xml中轻松更改此部分)。您正在阅读的指南很可能有点过时。
答案 1 :(得分:0)
通常,ActionBar会保留空间并相应地推送内容,但与ToolBar匹配的新AppBarLayout不会这样做。这意味着其他布局需要告知AppBarLayout存在正确定位自己的位置。 你的布局没有这样做,所以AppBarLayout隐藏了EditText和Button。
将其添加到content_my.xml
中的LinearLayout