Code Bye

设置 LinearLayout setVisibility 无效很奇怪

 

<FrameLayout
        android:id=”@+id/FrameLayout_ms”
        android:layout_width=”fill_parent”
        android:layout_height=”wrap_content” >

        <ImageView
            android:id=”@+id/imageView_logio_a”
            android:layout_width=”fill_parent”
            android:layout_height=”wrap_content”
            android:onClick=”showDanCiMessage”
            android:src=”@drawable/logo_gray” />

        <LinearLayout
            android:id=”@+id/LinearLayout_jieShi_lay”
            android:layout_width=”fill_parent”
            android:layout_height=”fill_parent”
            android:orientation=”vertical” android:visibility=”gone”  >

            <TextView
                android:id=”@+id/textView_zwsy”
                android:layout_width=”wrap_content”
                android:layout_height=”wrap_content”
                android:text=”中文”
                android:textAppearance=”?android:attr/textAppearanceLarge”
                android:textColor=”@color/line_qianHui”
               />

            <TextView
                android:id=”@+id/textView_lj_en”
                android:layout_width=”wrap_content”
                android:layout_height=”wrap_content”
                android:text=”英文例句”
                android:textAppearance=”?android:attr/textAppearanceLarge”
                android:textColor=”@color/line_qianHui”
               />

            <TextView
                android:id=”@+id/textView_lj_cn”
                android:layout_width=”wrap_content”
                android:layout_height=”wrap_content”
                android:text=”中文解释”
                android:textAppearance=”?android:attr/textAppearanceLarge”
                android:textColor=”@color/selectTextColor”
                />
        </LinearLayout>
    </FrameLayout>

需要实现的功能是点击上面的那个图片,然后图片隐藏,把LinearLayout 这个布局里的东西全部显示出来
public void showDanCiMessage(View v1) {

ImageView iv = (ImageView) v1.findViewById(R.id.imageView_logio_a);
iv.setVisibility(View.GONE);//图片可以隐藏

View v = LayoutInflater.from(this).inflate(R.layout.layout_fuxidanci,
null);
LinearLayout lLay = (LinearLayout) v
.findViewById(R.id.LinearLayout_jieShi_lay);
lLay.setVisibility(View.INVISIBLE);//这里显示不出来,但是也不出错
各位看看


2分
lLay.setVisibility(View.INVISIBLE);//View.VISIBLE吧
另外你怎么不直接LinearLayout lLay = (LinearLayout) v1.findViewById(R.id.LinearLayout_jieShi_lay);
我先试试稍等
lLay.setVisibility(View.VISIBLE);这样也不行和之前一样
继续求解
1楼正解。
View.INVISIBLE是view不可见,但是还是会占用空间。
View.GONE是view不可见,并且不会占用空间。
View.VISIBLE才是view可见。
public void showDanCiMessage(View v1) {
ImageView iv = (ImageView) v1.findViewById(R.id.imageView_logio_a);
iv.setVisibility(View.GONE);// 图片可以隐藏,没有问题

View v = LayoutInflater.from(this).inflate(R.layout.layout_fuxidanci,
null);//获得layout_fuxidanci.xml布局文件
LinearLayout lLay = (LinearLayout) v
.findViewById(R.id.LinearLayout_jieShi_lay);//获得布局对象
lLay.setVisibility(View.VISIBLE);// 这里显示不出来,但是也不出错
}
为什么呢


38分
lLay定义成全局的。
在onCreate里获取lLay = (LinearLayout) findViewById(R.id.LinearLayout_jieShi_lay);
然后在showDanCiMessage设置隐藏。
高手啊6楼谢谢谢谢
引用 7 楼 hhay7758 的回复:

高手啊6楼谢谢谢谢

请问如何解决?我也是界面显示不出来,但是获取的状态是0

Lay.setVisibility(View.INVISIBLE);改为Lay.setVisibility(View.VISIBLE);
试过可以

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明设置 LinearLayout setVisibility 无效很奇怪