Android中的布局创建

时间:2013-12-27 09:13:07

标签: android android-layout

这里我粘贴了我的布局文件: 可能有问题被问过这么多次,但请帮帮我朋友           

<ImageView
    android:id="@+id/productImageId"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:contentDescription="@string/products_category" />

<RelativeLayout
    android:id="@+id/linearView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <TextView
        android:id="@+id/productType"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/productName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <TextView
        android:id="@+id/productRating"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

现在我想要的是图像应该在左边,文本在右边。 Image1名称 Image1类型 Iamge1评级

图片1是单张图片,您可以看到上面的内容,但我的文字以单行显示在图片下方,例如

IMAGE1 名称类型评级

任何人都可以告诉我我错过了什么或我应该在哪里纠正我的布局文件。谢谢你的考虑。

3 个答案:

答案 0 :(得分:3)

您的父级可能是面向垂直的LinearLayout,尝试在您的代码中添加此LinearLayout,如下所示:

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal">
   <ImageView
       android:id="@+id/productImageId"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:contentDescription="@string/products_category" />

   <LinearLayout android:id="@+id/linearView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical">

       <TextView
           android:id="@+id/productType"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceLarge" />

       <TextView
           android:id="@+id/productName"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceLarge" />

       <TextView
           android:id="@+id/productRating"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:textAppearance="?android:attr/textAppearanceLarge" />
   </LinearLayout>
</LinearLayout>

答案 1 :(得分:1)

另一种简单的方法是

<LinearLayout 
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:orientation="horizontal">
<ImageView
   android:id="@+id/productImageId"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:contentDescription="@string/products_category" />

<LinearLayout
   android:id="@+id/linearView1"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:orientation="vertical">

   <TextView
       android:id="@+id/productType"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
       android:id="@+id/productName"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
       android:id="@+id/productRating"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:textAppearance="?android:attr/textAppearanceLarge" />
  </LinearLayout>
</LinearLayout>

这可以使用Single RelativeLayout作为父容器而不是使用两个级别的布局来完成

请检查以下布局

<RelativeLayout android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
   android:id="@+id/productImageId"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:contentDescription="@string/products_category" />


   <TextView
       android:id="@+id/productType"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_toRightOf="@+id/productImageId"
       android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
       android:id="@+id/productName"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_toRightOf="@+id/productImageId"
       android:layout_below="@+id/productType"
       android:textAppearance="?android:attr/textAppearanceLarge" />

   <TextView
       android:id="@+id/productRating"
       android:layout_below="@+id/productName"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_toRightOf="@+id/productImageId"
       android:textAppearance="?android:attr/textAppearanceLarge" />

 </RelativeLayout>

使用此布局的主要好处是性能提升,因为我们正在降低布局层次结构的一个级别,这将降低设备的处理能力

答案 2 :(得分:0)

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/productImageId"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="xx"
        android:src="@drawable/ic_launcher" />

    <RelativeLayout
        android:id="@+id/linearView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >

        <TextView
            android:id="@+id/productType"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="xx"
            android:textAppearance="?android:attr/textAppearanceLarge" />

        <TextView
            android:id="@+id/productName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/productType"
            android:text="xx"
            android:textAppearance="?android:attr/textAppearanceLarge" 
            android:layout_below="@id/productType"/>

        <TextView
            android:id="@+id/productRating"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/productName"
            android:text="xx"
            android:textAppearance="?android:attr/textAppearanceLarge" 
            android:layout_below="@id/productName"/>
    </RelativeLayout>

</LinearLayout>

因此,图像将采用水平线性布局中的左侧部分,而3个文本视图将采用相对布局而位于其他布局之下。

查看我得到的结果:

enter image description here

希望它有所帮助。