活动A 中有listView
和imageView
。如果listView.size等于0,它将在imageView中显示图像,它不等于0,它将显示列表。
这是我的Activtiy A的xml。我想在图像下方显示文本和按钮,但我发现它很难调整。
<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="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<ImageView
android:src="@mipmap/data"
android:paddingTop="30dp"
android:layout_gravity="center"
android:layout_width="330dp"
android:layout_height="300dp"
android:id="@+id/imageView2"
android:paddingLeft="20dp"></ImageView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="No Data"
android:textSize="15dp"
android:layout_marginLeft="140dp"
android:paddingTop="160dp"
android:textColor="@color/honey_dew2"
android:layout_gravity="center"
android:id="@+id/NoData"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Add Data"
android:paddingTop="20dp"
android:layout_marginBottom="10dp"
android:layout_marginLeft="130dp"
android:id="@+id/button2"
android:layout_centerVertical="true" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/listView2"
android:layout_weight="1"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
</RelativeLayout>
这就是我想要的。感谢
答案 0 :(得分:1)
我会改变你的整个方法。使用ListView.setEmptyView(View)设置单独的视图,以便在列表为空时显示。然后你的基本布局就是列表,你有一个单独的布局来显示空案例的内容。
答案 1 :(得分:1)
我认为这几乎就是你要找的东西
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:src="@mipmap/data"
android:paddingTop="30dp"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/imageView2"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:text="No alarms"
android:textSize="15sp"
android:textColor="@color/honey_dew2"
android:id="@+id/NoData"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:text="Add alarms"
android:paddingTop="48dp"
android:id="@+id/button2" />
</LinearLayout>
请注意,我已将RelativeLayout
更改为LinearLayout
,orientation
值为vertical
。我认为RelativeLayout
会给这个问题带来不必要的复杂性。
使用layout_centerVertical
和layout_centerHorizontal
属性代替padding
,您可以同时解决两个问题。
另请注意,TextView
textSize
属性现在位于单位sp
(缩放像素)中,而不是dp
(与密度无关的像素)。 text 的大小应始终在sp
中定义,视图的大小应相对定义或在dp
中定义。
XML
代码操纵Java
提供坚实的基础。