2013-04-24 15 views
9

Bu konuda bazı yazı gördüm ve sorun anlaşılır. Ama etrafına nasıl gidebiliriz? Ben genişletilebilir öğe ile ListView var ama görünümü kaldırıldı kez bir boş alan var sürece, yeniden görünür olamaz. Bu alan nasıl yapılır?setvisibility (view.visible) setvisibility (view.gone) sonra çalışmıyor

private void mySetOnItemListener() { 
    l.setOnItemClickListener(new OnItemClickListener() { 

    @Override 
    public void onItemClick(AdapterView<?> arg0, View view, 
      int position, long arg3) { 
     Log.d("onItemClick","called"); 
     LinearLayout ll = (LinearLayout)view.findViewById(R.id.llOpenedField); 
     ll.setVisibility(View.VISIBLE); 
    } 
    }); 
} 

benim viewLayout

<?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="wrap_content" 
    android:orientation="vertical" 
    android:descendantFocusability="blocksDescendants"> 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal" 
     android:weightSum="5" > 

     <TextView 
      android:id="@+id/tv_name" 
      android:layout_width="0px" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_weight="4" 
      android:padding="7dp" 
      android:text="item" 
      android:textColor="@android:color/background_dark" 
      android:textSize="25dp" /> 
    </LinearLayout> 

     <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/llOpenedField" 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal" 

     > 

     <ImageButton 
      android:id="@+id/ibInformation" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:src="@drawable/info" /> 

    </LinearLayout> 

</LinearLayout> 

LinearLayoutandroid:id="@+id/llOpenedField" başında gone yapmaya çalışıyorum ne im olduğunu.

BaseAdapter içinde getView() içine gone özniteliğini koydum. i

Doğrusal düzenini android:visibility="gone" olun tıklayarak ediyorum hangi

cevap

0

bu maddeyi liste değildir, ihtiyaca göre bu deneyin ve değiştirmek; İlk önce bunu yapın.

@Override 
    public void onClick(View v) 
    { 
     LinearLayout ll = (LinearLayout)findViewById(R.id.vis); 

     if(v == ex) 
     { 
      if(ll.getVisibility() == View.VISIBLE) 
       ll.setVisibility(View.GONE); 
      else 
       ll.setVisibility(View.VISIBLE); 
     } 

güncelleme: - Bunlar sana hatlar uygun genişletme ve daraltma yapmak hangi .. vardır ve içine görünür bir öğeyi verme kodu koyarsanız hiçbir boş alan

if(ll.getVisibility() == View.VISIBLE) 
        ll.setVisibility(View.GONE); 
       else 
        ll.setVisibility(View.VISIBLE); 
+0

Bu kod, gizlemek ve diğer öğeyi genişletmek için uygun şekilde çalışır veya liste öğesini tıklattıktan sonra görüntülenir. – Unknown

+0

Bu veya not..its "ex" in ise (v == ex) neyi temsil kod fiyasko – Unknown

+0

çalışan denediniz mi? Bu sadece görmek –

3

olacak onun onClickListener'a erişilemez (ekran boşluğundan hiçbir şey tüketmezse, üzerine tıklayamazsınız). Bunun altında bir asgari yüksekliğe sahip bir düzen koymak gerekir ve görünüm l gitmiş hale geçtiğinde, yeni düzen kabuk görünür hale gelir ve görünür yapma OnClickListener almalısınız. Bu şekilde, Görünümünüz gittikten sonra, bu yeni düzen onu geri getirebilir.

1

bu cevabı kontrol edin. Bu cevap benim için çalışıyor.

TranslateAnimation translateAnimation = new TranslateAnimation(0, 50, 0, 0); 
      int animationTime = 200; 
      translateAnimation.setDuration(animationTime); 
      translateAnimation.setFillEnabled(true); 
      translateAnimation.setFillAfter(true); 
      yourView.startAnimation(translateAnimation); 
      yourView.setVisibility(View.VISIBLE); 
+0

U günümü adamı kurtardı bkz! –

İlgili konular