2016-11-29 2 views
0

У меня есть cutomized ListView, который состоит из ImageView, некоторые TextView и Button. когда я запускаю код на коде на Huawei, список просматривается, а просмотры внутри него хорошо выровнены, но когда я запускаю тот же код на планшете галактики Samsung, изображения смешиваются, как показано ниже на картинкекак сделать вид хорошо выровнены indpendent устройства

, пожалуйста, позвольте я знаю, что я должен сделать, чтобы взгляды хорошо выровненной indpendent устройства

код:

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

<TableRow 
    android:layout_width="wrap_content" 
    android:orientation="horizontal" 
    android:weightSum="5"> 

    <ImageView 
     android:id="@+id/vers_img" 
     android:layout_width="0dp" 
     android:layout_height="60dp" 
     android:layout_gravity="center_horizontal|center_vertical" 
     android:layout_weight="1" /> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="center_horizontal|center_vertical" 
     android:layout_weight="3" 
     android:orientation="vertical" 
     android:weightSum="3"> 

     <TextView 
      android:id="@+id/ver_name" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_gravity="center_horizontal|center_vertical" 
      android:layout_marginStart="@dimen/versicherungsListeActivity_vers_liste_margin" 
      android:layout_weight="1" 
      android:gravity="start" 
      android:text="ver_name" 
      android:textSize="16dp"/> 

     <TextView 
      android:id="@+id/ver_ges" 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_gravity="center_horizontal|center_vertical" 
      android:layout_marginStart="@dimen/versicherungsListeActivity_vers_liste_margin" 
      android:layout_weight="1" 
      android:gravity="start" 
      android:text="ver_ges" /> 

     <RelativeLayout 
      android:id="@+id/versiecherungsListeActivity_rellay_ver_status" 
      android:layout_width="wrap_content" 
      android:layout_height="0dp" 
      android:paddingStart="@dimen/versicherungsListeActivity_vers_liste_padding" 
      android:paddingEnd="@dimen/versicherungsListeActivity_vers_liste_padding" 
      android:layout_marginStart="@dimen/versicherungsListeActivity_vers_liste_margin" 
      android:layout_gravity="start" 
      android:layout_weight="1" 
      android:gravity="center_horizontal|center_vertical" 
      android:background="@drawable/round_corners"> 

      <TextView 
       android:id="@+id/versicherungsListeActivity_ver_yearly_cost" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:gravity="center" 
       android:text="409" /> 
      <TextView 
       android:id="@+id/versicherungsListeActivityMain_euro_sign" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_toEndOf="@id/versicherungsListeActivity_ver_yearly_cost" 
       android:text="€/Jahr" /> 

      <TextView 
       android:id="@+id/versicherungsListeActivity_ver_in_bearbeitung" 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:visibility="gone" 
       android:text="In Bearbeitung" /> 
     </RelativeLayout> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/versButton_layout" 
     android:orientation="vertical" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_gravity="right|top" 
     android:focusable="false" 
     android:focusableInTouchMode="false"/> 

    <Button 
     android:id="@+id/vers_pers_button" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal|center_vertical" 
     android:layout_weight="1" 
     android:background="@android:drawable/ic_menu_info_details" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:gravity="center_horizontal|center_vertical" 
     android:scaleX=".6" 
     android:scaleY="0.7" /> 

</TableRow> 


</TableLayout> 

изображение:

enter image description here

+0

разместить свой макет row.xml –

+0

@RjzSatvara нормально я разместил код – user2121

+0

не использовать точные значения для ширины/высоты, используйте wrap_content вместо –

ответ

0

Я решил это, установив первый linearLayout на Android: layout_height = "wrap_content".

Фактически, ответ @Senthil Vidhiyakar помог мне решить эту проблему, потому что в своем ответе он упомянул, что элемент TableRow занимает высоту от первого первого ребенка, который в моем случае является элементом ImageView.

Следовательно, если у LinearLayout установлен андроид: layout_height = "match_parent", то он будет соответствовать высоте его родителя, который является элементом , который имеет высоту, такую ​​же, как элемент ImageView. Поэтому, устанавливая LinearLayout набора иметь андроид: layout_height = «wrap_content», то LinearLayout будет расширяться, чтобы содержать все три ребенка рассматривает

0
<TextView 
       android:id="@+id/versicherungsListeActivity_ver_yearly_cost" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:text="409" /> 
      <TextView 
       android:id="@+id/versicherungsListeActivityMain_euro_sign" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_toEndOf="@id/versicherungsListeActivity_ver_yearly_cost" 
       android:text="€/Jahr" /> 

      <TextView 
       android:id="@+id/versicherungsListeActivity_ver_in_bearbeitung" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:visibility="gone" 
       android:text="In Bearbeitung" /> 

заменить выше код с макетом

+0

, это не помогло решить проблему – user2121

0

В строке таблицы не задана явный рост и он принимает высоту своего первого ребенка в ImageView с ID vers_img, который 60dp. Это делает следующий ребенок relativelayout также взять ту же общую высоту, которая составляет 60dp ...

Примечание: Значение px в dp может измениться с устройства на устройство с разрешением устройства. Я предпочитаю использовать sp вместо ..

+0

, она также решила проблему – user2121

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