Android Studio,布局不会在模拟器上显示

时间:2015-10-24 00:57:35

标签: android xml

我刚下载了新的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

我应该得到这个:

Correct view for emulator

2 个答案:

答案 0 :(得分:0)

通常,ActionBar会保留空间并相应地按下内容,但与工具栏匹配的新AppBarLayout不会这样做。这意味着需要告知其他布局AppBarLayout是否能正确定位自己 你的布局没有这样做,所以AppBarLayout隐藏了EditText和Button。

将其添加到content_my.xml

中的LinearLayout
app: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