setVisibility(view.GONE)无法使用Android

时间:2015-06-24 10:07:20

标签: android android-layout android-view

我需要以编程方式禁用视图,所以我在activity中使用了setVisibility(view.GONE)。我的xml有两个名为lower和upper的按钮以及两个名为lower_lay和upper_lay的相对布局。当我点击下方按钮我需要启用lower_lay时,我点击我需要启用upper_lay的上方按钮。 upeer_lay和lower_lay都有图像并执行onTouch事件。现在我的问题是当我在lower_lay中时,upper_lay的图像被禁用但是当我触摸lower_lay中的空白空间时,upper_lay图像即将到来......而在upper_lay中我遇到了这个问题。为什么视图没有完全消失?

我试试3天......请任何人帮帮我。

的xml:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/r1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"

  >
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        android:fillViewport="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

        <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#1e356a">

        <TextView
            android:id="@+id/placce_head"
            android:layout_width="wrap_content"
            android:layout_height="25dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="10dp"
            android:text="Hyderabad to banglore"
            android:textColor="#ffffff"
            android:textSize="20dp" />



    </RelativeLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#78869c"
                android:weightSum="2"

                android:orientation="horizontal">


            <TextView
                android:id="@+id/seats"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="10dp"
                android:text="Selected Seats"
                android:textColor="#ffffff"
                android:textSize="16dp" />
                <TextView
                    android:id="@+id/totalamount"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="10dp"
                    android:text="Total Amount"
                    android:textColor="#ffffff"
                    android:textSize="16dp" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#78869c"
                android:weightSum="2"
                android:orientation="horizontal">


                <TextView
                    android:id="@+id/seat_num"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="10dp"

                    android:textColor="#ffffff"
                    android:textSize="16dp" />
                <TextView
                    android:id="@+id/total_amount"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:layout_marginLeft="10dp"
                    android:layout_centerHorizontal="true"
                    android:layout_centerVertical="true"


                    android:textColor="#ffffff"
                    android:textSize="16dp" />
        </LinearLayout>
           <LinearLayout
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:orientation="vertical"
               android:background="#1e356a"
              >

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#1e356a"
                android:layout_marginTop="5dp"
                android:layout_marginBottom="10dp"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="6dp"
                    android:src="@drawable/bluesmall"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="6dp"
                    android:text="Available"
                    android:textSize="12dp"
                    android:textColor="#ffffff"/>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="5dp"
                    android:src="@drawable/greensmall"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="6dp"
                    android:textSize="12dp"
                    android:textColor="#ffffff"
                    android:text="Selected"/>
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="6dp"

                    android:src="@drawable/pinksmall"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="Ladies"
                    android:textSize="12dp"
                    android:textColor="#ffffff"
                    android:layout_marginLeft="6dp"/>
                <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                    android:layout_marginLeft="6dp"
                android:src="@drawable/redsmall"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="6dp"
                    android:textSize="12dp"
                    android:textColor="#ffffff"
                    android:text="Booked"/>


                </LinearLayout>
               <LinearLayout
                   android:id="@+id/sleeper_lay"
                   android:layout_width="match_parent"
                   android:layout_height="wrap_content"
                   android:orientation="horizontal"
                   android:background="#78869c"
                   android:weightSum="2"

                   android:padding="7dp"
                   android:layout_marginTop="10dp"
                   android:layout_marginLeft="10dp"
                   android:layout_marginRight="10dp"
                   >
                   <Button
                       android:id="@+id/lower"
                       android:layout_width="0dp"
                       android:layout_weight="1"
                       android:text="Lower"
                       android:textColor="#F93249"
                       android:gravity="center"
                       android:textSize="18dp"
                       android:layout_height="wrap_content" />
                   <Button
                       android:id="@+id/upper"
                       android:layout_width="0dp"
                       android:layout_weight="1"
                       android:text="Upper"
                       android:textSize="18dp"
                       android:textColor="#ffffff"
                       android:gravity="center"
                       android:layout_height="wrap_content" />

               </LinearLayout>





            <RelativeLayout
        android:id="@+id/relative_layout"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginBottom="10dp"
                android:background="@drawable/bg_border"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center" >






    </RelativeLayout>
               <RelativeLayout
                   android:id="@+id/relative_layout_two"

                   android:layout_marginLeft="10dp"
                   android:layout_marginRight="10dp"
                   android:layout_marginBottom="10dp"
                   android:background="@drawable/bg_border"
                   android:visibility="gone"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:gravity="center" >






               </RelativeLayout>

<Button
    android:id="@+id/done_btn"
    android:background="#F93249"
    android:textColor="#ffffff"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="done"/>

           </LinearLayout>

        </LinearLayout>
    </ScrollView>




</RelativeLayout>

Activitiy:

lower_lay = (RelativeLayout) findViewById(R.id.relative_layout);//lower layout
       upper_lay= (RelativeLayout) findViewById(R.id.relative_layout_two);//upperlayout
    upper.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {

           lower_lay.setVisibility(View.GONE);
            upper.setTextColor(Color.parseColor("#F93249"));
            lower.setTextColor(Color.parseColor("#ffffff"));
            upper_lay.setVisibility(View.VISIBLE);

            sheetdetails.clear();

        }
    });

    lower.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {

         upper_lay.setVisibility(View.GONE);
            upper.setTextColor(Color.parseColor("#ffffff"));
            lower.setTextColor(Color.parseColor("#F93249"));
           lower_lay.setVisibility(View.VISIBLE);

        }
    });

3 个答案:

答案 0 :(得分:1)

尝试使用 View.GONEview.GONE

lower.setOnClickListener不是lower.setOnTouchListener

答案 1 :(得分:0)

View是类,所以应该以大写字母开头。 请看我的更新。

upper.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        lower_lay.setVisibility(View.GONE);
        upper.setTextColor(Color.parseColor("#F93249"));
        lower.setTextColor(Color.parseColor("#ffffff"));
        upper_lay.setVisibility(View.VISIBLE);

    }
});

lower.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        lower_lay.setVisibility(View.VISIBLE);
        upper.setTextColor(Color.parseColor("#ffffff"));
        lower.setTextColor(Color.parseColor("#F93249"));
        upper_lay.setVisibility(View.GONE);
    }
});

答案 2 :(得分:0)

我会就你的布局给你一个很好的建议:

来自Chat Haase博客:

  

RelativeLayout是一个非常方便的布局,因为它允许使用   开发人员指定内容相对于其他内容的放置方式   内容。在许多情况下,这是必要的,可能是最好的   这份工作的解决方案。但是,理解这一点很重要   RelativeLayout是一种昂贵的解决方案,因为它需要两个   测量通过以确保它已处理所有布局   关系正确。而且,这个问题随之而来   整个层次结构中的其他RelativeLayout。想象一下   RelativeLayout位于视图层次结构的顶部;这本质上   将整个视图层次结构上的测量工作加倍。现在   想象另一个RelativeLayout作为第一个孩子之一   一个 - 再次翻倍测量通过它,   要求对其中的所有视图进行四次测量   子层级。

     

对于不需要的情况,请使用不同类型的布局   RelativeLayout的功能,例如LinearLayout甚至自定义   布局。或者针对子视图的相对对齐的情况   是必要的,考虑更优化的GridLayout,其中   预处理子视图关系并避免使用   双重测量问题。