2015-04-17 5 views
0

У меня есть RelativeLayout с двумя объектами TextView. Я хочу, чтобы @+id/b поднялся, если отсутствует @+id/a.RelativeLayout: layout_alignWithParentIfMissing не работает

Поэтому я попытался установить контент null, когда я раздуваю родительский вид, но все, что происходит, это то, что текст просто не отображается. @+id/b остается на своем месте и @+id/a все еще там - без текста.

public View getView(int position, View convertView, ViewGroup parent) { 
    // ... 
    holder.a.setText(null); 
    //parent.removeView(holder.a)    // Did not work 
    //holder.a.setVisibility(View.INVISIBLE); // Did not work 
    // ... 
} 

Я также попытался удалить с parent.removeView(holder.a) результате в первом классе приложения-аварии.

Где я ошибся?

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:orientation="vertical">  
    <TextView 
     android:id="@+id/a" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="14sp"/>  
    <TextView 
     android:id="@+id/b" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="14sp" 
     android:layout_alignWithParentIfMissing="true" 
     android:layout_below="@+id/a" 
     android:layout_alignParentBottom="@+id/a"/> 
</RelativeLayout> 

ответ

0

Если вы хотите скрыть @+id/a, почему ты просто не setVisibility(View.GONE)?

+0

Речь идет не о видимости. Речь идет о '@ + id/b', чтобы двигаться вверх, если' @ + id/a' удален, невидим или пуст. – displayname

+0

И вы попробовали два метода для удаления 'a', но никто из них не работал. Кстати, есть ли причина использовать« RelativeLayout »вместо« LinearLayout »? – Lamorak

+0

Afaik вы должны использовать 'RelativeLayout' для такой вещи, как он предлагает такие атрибуты, как' android: layout_alignWithParentIfMissing', которые должны делать то, о чем я прошу. – displayname

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