我有一个看起来像这样的布局
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
style="@style/Splash">
<TextView android:id="@+id/splash_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Splash.H1"
android:text="@string/splash_title"/>
<LinearLayout android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/splash_image"
android:src="@drawable/ic_launcher_ftnicon"
style="@style/Splash.Image"/>
<TextView android:id="@+id/splash_powered_by"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Splash.H2"
android:text="@string/splash_powered_by"/>
</LinearLayout>
</LinearLayout>
我的风格看起来像这样
<style name="Splash">
<item name="android:gravity">center</item>
<item name="android:background">#FFFFFF</item>
</style>
当我将背景更改为drawable时,如下所示:
<style name="Splash">
<item name="android:gravity">center</item>
<item name="android:background">@drawable/bg_splash</item>
</style>
第二个线性布局完全消失。显示背景图像,标题的文本视图显示。
答案 0 :(得分:1)
以下是我的想法。
你的@ drawable / bg_splash是一个全屏图像。
请记住,对于样式,所有子项都将继承父项的设置(即。Splash.H1也将具有与Splash相同的背景)。这意味着所有视图的背景将设置为相同的全屏图像。通过布局您定义的方式,将显示的唯一视图是“@ + id / splash_title”文本视图。线性布局将被迫离开屏幕到底部。