现在,我在布局编辑器中制作的所有布局都是这样的。我不记得以前这是否正常,但这有点烦人。
如您所见,ImageView和TextView位于状态栏上方。 更糟糕的是ListView是最重要的,即使我已经设置:
android:layout_below="@id/txt_title"
观点的最终结果如我所料:
[Imageview][TextView]
[ List View ]
但编辑器中的这个错误(?)让我烦恼。
这是布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/primary"
android:fitsSystemWindows="true"
>
<ImageView
android:id="@+id/img_logo"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@color/white"
app:ico_color="@color/iconColor"
app:ico_icon="cmd-download"
app:ico_size="24dp"
/>
<TextView
android:id="@+id/txt_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@id/img_logo"
android:gravity="start|center_vertical"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:text="@string/title_favorite_beers"
android:textColor="@color/white"
android:textSize="15sp"
/>
<ListView
android:id="@+id/widget_list_collection"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_below="@id/txt_title"
android:background="@color/white"
android:padding="8dp"
/>
</RelativeLayout>
- 编辑 - 我已将布局更改为:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:background="@color/primary"
android:fitsSystemWindows="true"
>
<ImageButton
android:id="@+id/widget_image_logo"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@color/iconColor"
android:foreground="?android:selectableItemBackground"
android:foregroundGravity="center_vertical"
android:src="@mipmap/ic_beer_launch"
/>
<TextView
android:id="@+id/txt_title"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_alignParentTop="true"
android:layout_toEndOf="@id/widget_image_logo"
android:gravity="start|center_vertical"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:text="@string/title_favorite_beers"
android:textColor="@color/white"
android:textSize="15sp"
android:textStyle="bold"
tools:text="Favorite Beers"
/>
<ListView
android:id="@+id/widget_list_collection"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_below="@id/txt_title"
android:background="@color/white"
android:padding="8dp"
/>
</RelativeLayout>
结果是:
my styles.xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:dialogTheme">@style/TitledDialog</item>
</style>
<style name="TitledDialog" parent="@style/Theme.AppCompat.Light.Dialog">
<item name="android:windowNoTitle">false</item>
</style>
<style name="AppTheme.PrimaryButton" parent="Base.Widget.AppCompat.Button">
<item name="android:layout_height">@dimen/button_height</item>
<item name="android:padding">@dimen/button_padding</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:background">?attr/colorAccent</item>
<item name="android:foreground">?attr/selectableItemBackground</item>
<item name="android:textColor">@android:color/white</item>
</style>
<style name="AppTheme.Toolbar" parent="Theme.AppCompat.Light">
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@android:color/white</item>
<item name="actionMenuTextColor">@android:color/white</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/>
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/>
<style name="CollapsedToolbar" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@android:color/white</item>
<item name="android:textStyle">normal</item>
</style>
<style name="ExpandedToolbar" parent="@android:style/TextAppearance.Medium">
<item name="android:textColor">@android:color/transparent</item>
</style>
<string name="movie_details">Movie Details</string>
</resources>
- 编辑 -
编辑器正在覆盖此项目的所有视图中的状态栏。正如您在此活动中看到的那样,在root中使用CoordinatorLayout:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.github.alexpfx.udacity.beercollection.search.SearchActivity"
>
<include layout="@layout/layout_toolbar"/>
<include layout="@layout/content_search_activity"/>
</android.support.design.widget.CoordinatorLayout>
答案 0 :(得分:2)
我在布局中看到的问题很少
ImageView类没有以下属性:
更新:根据评论,以下属性正常,因为操作系统正在使用Android-Iconics
app:ico_color="@color/iconColor"
app:ico_icon="cmd-download"
app:ico_size="24dp"
您正在将列表视图限制在文本视图下,但根据您发布的图像,您的文本视图似乎没有内容,因此它与您的图像视图重叠。您可以通过将视图限制在具有更高高度的视图下来解决此问题,例如您的图片视图在发布的示例中具有更大的高度。
似乎你想要的东西是:
[ImageView的] [TextView的]
[列表视图]
我已将您的代码修改为以下内容,以提供所需的结果。
注意:我已经更改了一些值(例如颜色,背景,文本等),您需要相应地添加它们。
最后,确保您的主题不负责导致布局与状态栏重叠。布局编辑器也改进了android studio版本。确保你有最新版本的android studio。以下图片来自Android Studio 3.0.1
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red"
android:fitsSystemWindows="true"
>
<ImageView
android:id="@+id/img_logo"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:background="@color/red"
android:src="@android:drawable/stat_sys_download"
/>
<TextView
android:id="@+id/txt_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toEndOf="@id/img_logo"
android:gravity="start|center_vertical"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:text="test"
android:textColor="@color/white"
android:textSize="15sp"
/>
<ListView
android:id="@+id/widget_list_collection"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_below="@id/img_logo"
android:background="@color/white"
android:padding="8dp"
/>
</RelativeLayout>