2016-03-16 4 views
2
<LinearLayout 
    android:id="@+id/linID" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_marginTop="20dp" 
    android:layout_marginLeft="30dp" 
    android:layout_marginRight="50dp" 
    android:layout_marginBottom="40dp"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="37dp" 
     android:background="@color/transparentBlack" 
     android:clickable="false" 
     android:id="@+id/gHeader" 
     android:textSize="22dp" 
     android:textColor="@color/homeCategoryTitleColor"/> 
    <ListView android:id="@id/android:list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:headerDividersEnabled="false" 
     android:drawSelectorOnTop="true" 
     android:choiceMode="singleChoice" 
     android:clickable="false" 
     android:divider="@color/categorylist_divider" 
     android:dividerHeight="20.0sp" 
     android:layout_below="@+id/gHeader" 
     android:scrollbarSize="10dp" 
     android:fadeScrollbars="false"/> 
    <ImageView 
     android:layout_width="fill_parent" 
     android:layout_height="20dp" 
     android:background="@color/transparentBlack" 
     android_layout_below="@+id/android:list" 
     android:src="@drawable/down_arrow" /> 
</LinearLayout> 

Это то, что у меня есть до сих пор. Данные в listview добавляются динамически, и по какой-то причине изображение всегда находится в нижней части экрана, если listview не заполняет все, что отлично. Есть какие нибудь идеи как это починить? Я пробовал несколько способов, обертывая макеты, чтобы объединить другие макеты для работы, но не может получить идеи. Заранее спасибо!Добавление изображения прямо под списком

+0

'android_layout_below' работает только на RelativeLayout и использует' @ + id', если вы не добавляете ** id. Используйте только '@ id', когда ссылаетесь на один. –

+0

@Taeyoung Ли не получает то, что вам нужно? См. Здесь, это может помочь вам: - http://coderzpassion.com/android-working-linearlayout/ –

+0

@jagjitsingh Я пытаюсь добавить нижний колонтитул изображения прямо под списком. Я реализовал изображение прямо над списком, но не могу понять, как добавить его чуть ниже. Там есть пространство, которое, я думаю, происходит с высоты, установленной в списке. Есть идеи? –

ответ

0

Вы можете использовать

'com.android.support:percent:23.2.0'

библиотека успешно достичь этого. Вы можете указать процент, такой же, как в HTML.

<android.support.percent.PercentRelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
xmlns:app="http://schemas.android.com/apk/res-auto"> 

<ListView android:id="@id/android:list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:headerDividersEnabled="false" 
    android:drawSelectorOnTop="true" 
    android:choiceMode="singleChoice" 
    android:clickable="false" 
    android:divider="@color/categorylist_divider" 
    android:dividerHeight="20.0sp" 
    android:layout_below="@+id/gHeader" 
    android:scrollbarSize="10dp" 
    app:layout_hightPercent="70%" 
    android:fadeScrollbars="false"/> 
<ImageView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    app:layout_hightPercent="30%" 
    android:background="@color/transparentBlack" 
    android_layout_below="@id/android:list" 
    android:src="@drawable/down_arrow" /> 

</android.support.percent.PercentRelativeLayout> 
+0

Довольно круто, я попробую, если к этому не придут другие решения. Благодаря! –

+0

@TaeyoungПосмотреть ваш отзыв – UMESH0492

0

Вместо android_layout_below используйте layout_weight в своем ListView. Вот как должно выглядеть:

<LinearLayout 
    android:id="@+id/linID" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_marginTop="20dp" 
    android:layout_marginLeft="30dp" 
    android:layout_marginRight="50dp" 
    android:layout_marginBottom="40dp"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="37dp" 
     android:background="@color/transparentBlack" 
     android:clickable="false" 
     android:id="@+id/gHeader" 
     android:textSize="22dp" 
     android:textColor="@color/homeCategoryTitleColor"/> 
    <ListView android:id="@id/android:list" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"  
     android:headerDividersEnabled="false" 
     android:drawSelectorOnTop="true" 
     android:choiceMode="singleChoice" 
     android:clickable="false" 
     android:divider="@color/categorylist_divider" 
     android:dividerHeight="20.0sp" 
     android:layout_below="@+id/gHeader" 
     android:scrollbarSize="10dp" 
     android:fadeScrollbars="false"/> 
     <ImageView 
      android:layout_width="fill_parent" 
      android:layout_height="20dp" 
      android:background="@color/transparentBlack" 
      android:src="@drawable/down_arrow" /> 
</LinearLayout> 

Надеется, что это помогает !!

+0

эй, спасибо за ответ. Это была одна из попыток, которые я сделал, и выглядел великолепно в портретном режиме, но не в ландшафтном режиме. В ландшафте он не отображает изображение, просто список. Любая идея о том, как это исправить? Или вы знаете, как программно изменить вес макета, например listview/imageview? –

+0

Хорошо, я отредактирую свой ответ, просто используйте layout_weight –

+0

Woah, я хотел сказать это вам, а не человеку выше, но этот код работает потрясающе. –

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