![](/img/trans.png)
[英]RelativeLayout refresh after view.setVisibility(View.GONE) and view.setVisibility(View.VISIBLE)
[英]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.