簡體   English   中英

setvisibility(view.oneible)在setvisibility之后無效(view.gone)

[英]setvisibility(view.visible) not working after setvisibility(view.gone)

我看到一些關於這個的帖子,我理解了這個問題。 但怎么能繞過它呢? 我有ListView可以擴展的項目,但一旦視圖消失,它再也看不到,除非它有一個空閑空間。 如何制作那個空間?

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);
    }
    });
}

我的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>

LinearLayout android:id="@+id/llOpenedField"是我試圖在開始時gone的東西。

我把gone屬性在getView()BaseAdapter

如果將構成元素的代碼放入其onClickListener中,則無法訪問它(如果它不占用任何屏幕空間,則無法單擊它)。 您應該在其下方放置一個最小高度的布局,當您的視圖l消失時,新的布局shell將變為可見,並且它應該獲得可見的onClickListener。 這樣,在您的View消失后,這個新布局將能夠將其恢復。

請檢查這個答案。 這個答案對我有用。

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);

嘗試這個並根據您的需要進行修改,這不是我點擊的列表項

使線性布局android:visibility="gone" ; 首先,這樣做。

@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);
        }

更新: - 這些是你的線..這將使適當的擴展和崩潰,並沒有自由空間

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM