2015-12-09 3 views
1

Как переместить ImageView на левую сторону, как показано ниже?Как настроить ImageView в ListView?

enter image description here

Это мой ListView и макет.

enter image description here

custom_row.xml

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

    <TextView android:id="@+id/ListType" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="17sp" 
     android:textStyle="bold" 
     android:textColor="@color/black"/> 

    <TextView android:id="@+id/ListAmount" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="17sp" 
     android:textColor="@color/blue"/> 

    <TextView android:id="@+id/ListDescription" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="17sp" 
     android:textColor="@color/blue"/> 

    <ImageView 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="25dp" 
     android:id="@+id/photo" /> 
</LinearLayout> 

Спасибо!

ответ

1

Пожалуйста, дайте ему попробовать использовать LinearLayout как в коде ниже:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" > 

    <ImageView 
     android:id="@+id/photo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:paddingLeft="10dp" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/ListType" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textColor="@color/black" 
      android:textSize="17sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/ListAmount" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textColor="@color/blue" 
      android:textSize="17sp" /> 

     <TextView 
      android:id="@+id/ListDescription" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textColor="@color/blue" 
      android:textSize="17sp" /> 
    </LinearLayout> 

</LinearLayout> 
1

Пожалуйста, попробуйте использовать RelativeLayout вместо LinearLayout. Зачем? Здесь я бы сказал вам несколько причин:

  1. Было бы намного проще выровнять что-либо в любом месте данного макета.
  2. Вы можете легко определить атрибуты для выравнивания и размещения.
  3. Вы можете перетащить вид и упорядочить их в Android Studio.
1

Легче использовать Relative Layout здесь:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <!-- Sit image to the Parent's left --> 
    <ImageView 
     android:layout_alignParentLeft="true" 
     android:layout_width="25dp" 
     android:layout_height="25dp" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="25dp" 
     android:id="@+id/photo" /> 

    <!-- Position, to right of Image & Stack views relative here as well --> 
    <RelativeLayout 
     android:layout_toRightOf="@+id/photo" 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent"> 
     <TextView android:id="@+id/ListType" 
      android:textSize="17sp" 
      android:textStyle="bold" 
      android:textColor="@color/black" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"/> 
     <TextView android:id="@+id/ListAmount" 
      android:layout_below="@+id/listType" 
      android:layout_width="wrap_content" 
      android:textSize="17sp" 
      android:textColor="@color/blue" 
      android:layout_height="wrap_content"/> 
     <TextView android:id="@+id/ListDescription" 
      android:layout_below="@+id/ListAmount" 
      android:layout_width="wrap_content" 
      android:textSize="17sp" 
      android:textColor="@color/blue" 
      android:layout_height="wrap_content"/> 
    </RelativeLayout> 

</RelativeLayout> 
1

Ваш желаемый макет необходимую стратегию Уплотненный Layout.

Ваш верхний линейный макет должен иметь horizontal Ориентация внутри него Есть два детских макета, один - imageview, а другой - LinearLayout. Вторых Линейная планировки имеет vertical ориентацию, в которой вы можете добавить больше вида ребенка, например, как в вашем случае сумме, утверждает, тип и т.д.

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

<ImageView 
    android:layout_width="25dp" 
    android:layout_height="25dp" 
    android:layout_marginLeft="10dp" 
    android:layout_marginTop="25dp" 
    android:id="@+id/photo" /> 
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 
<TextView android:id="@+id/ListType" 
     android:textSize="17sp" 
     android:textStyle="bold" 
     android:textColor="@color/black" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/ListAmount" 
     android:layout_width="wrap_content" 
     android:textSize="17sp" 
     android:textColor="@color/blue" 
     android:layout_height="wrap_content"/> 
    <TextView android:id="@+id/ListDescription" 
     android:layout_width="wrap_content" 
     android:textSize="17sp" 
     android:textColor="@color/blue" 
     android:layout_height="wrap_content"/> 

</LinearLayout> 


</LinearLayout> 

Вы можете получить больше представления о сложной разметке: here

Вы должны узнать о разных типах макетов для разных целей. В приведенном выше фрагмент кода можно использовать layout_weight, чтобы дать вид на неподвижную wieht/область в родительском макете

1

пожалуйста найти код ниже

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

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="horizontal"> 

      <ImageView 
       android:layout_width="0dp" 
       android:layout_height="match_parent" 
       android:layout_marginLeft="10dp" 
       android:layout_marginTop="25dp" 
       android:id="@+id/photo" 
       android:layout_weight=".2"/> 

      <LinearLayout 
       android:orientation="vertical" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.8"> 
       <TextView android:id="@+id/ListType" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="17sp" 
        android:textStyle="bold" 
        android:textColor="@color/black"/> 

       <TextView android:id="@+id/ListAmount" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="17sp" 
        android:textColor="@color/blue"/> 

       <TextView android:id="@+id/ListDescription" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="17sp" 
        android:textColor="@color/blue"/> 
      </LinearLayout> 

     </LinearLayout> 

    </LinearLayout> 

Please find screenshot below

+0

ли ваша проблема подошвой? Буду признателен, если вы примете мой ответ, если он поможет –

Смежные вопросы