【问题标题】:Why layout does not become invisible?为什么布局不会变得不可见?
【发布时间】:2015-09-25 22:50:52
【问题描述】:

所以我的布局仍然可见,也许有人看到错误?我想在单击 infoButton(imagebutton) 时将其消失。

FrameLayout infolayout;
infolayout = (FrameLayout) findViewById(R.id.infoLayout);
public void infoPressed(View v){//info button is pressed by user
        //infoLayout.setVisibility(View.GONE); 

        infolayout.setVisibility(View.INVISIBLE);
    }

    <FrameLayout
    android:layout_width="193dp"
    android:layout_height="200dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignBottom="@+id/serviceLayout"
    android:id="@+id/infoLayout">

我看了:How to change visibility of layout programaticly

编辑: 错误的代码部分,仍然不适合我

【问题讨论】:

  • 也许 id 是 serviceLayout 而不是 R.id.infoLayout
  • 你在哪里为你的按钮添加监听器??
  • ''

标签: java android layout android-studio


【解决方案1】:

如果您的 ID 声明正确,我想您必须更改该行

infolayout.setVisibility(View.INVISIBLE);

infolayout.setVisibility(FrameLayout.INVISIBLE);

【讨论】:

    【解决方案2】:

    *试试这个**

    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.example.demo.MainActivity" >
    
    <FrameLayout
        android:id="@+id/serviceLayout"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:background="#000000" />
    
    <Button
        android:id="@+id/btnHide"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:onClick="infoPressed"
        android:text="Hide" />
    
    </RelativeLayout>
    

    MainActivity.java

    public class MainActivity extends Activity
    {
    
        FrameLayout infolayout;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            infolayout = (FrameLayout) findViewById(R.id.serviceLayout);
        }
    
        public void infoPressed(View v){ //info button is pressed by user
        //infoLayout.setVisibility(View.GONE); 
    
            infolayout.setVisibility(View.INVISIBLE);
        }
    
    
    }
    

    【讨论】:

    • 我的代码没有区别,我也有同样的s**t:/
    • 您使用的是 infoLayout 而不是 serviceLayout 请检查您的代码
    • 我改了...再看一遍
    • 发现错误:schemas.android.com/apk/res/android" xmlns:tools="schemas.android.com/tools" android:layout_width="385dp" android:layout_height="525dp" android:paddingLeft=" 0dp" android:scaleType="fitEnd" android:paddingRight="0dp" android:paddingTop="1dp" android:paddingBottom="10dp" 工具:context=".MainActivity" android:id="@+id/activity_main" >这很糟糕,如何解决?
    • xmlns:android="schemas.android.com/apk/res/android"; xmlns:tools="schemas.android.com/tools"; android:layout_width="385dp" android:layout_height="525dp"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2019-12-13
    • 2016-11-30
    • 2019-03-26
    相关资源
    最近更新 更多