使用imageView,按钮和文本调整xml android

时间:2016-01-20 02:11:32

标签: android xml

活动A 中有listViewimageView。如果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>

这就是我想要的。感谢

http://i.stack.imgur.com/OSL4I.png

2 个答案:

答案 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更改为LinearLayoutorientation值为vertical。我认为RelativeLayout会给这个问题带来不必要的复杂性。

使用layout_centerVerticallayout_centerHorizontal属性代替padding,您可以同时解决两个问题。

  1. 该职位现在扩展到不同的设备。
  2. 布局远没那么复杂。
  3. 另请注意,TextView textSize属性现在位于单位sp(缩放像素)中,而不是dp(与密度无关的像素)。 text 的大小应始终在sp中定义,视图的大小应相对定义或在dp中定义。

    来自多产的mkyong的{p> This tutorial应该为使用XML代码操纵Java提供坚实的基础。