RelativeLayout.setVisibility(int)在android中抛出null point exception

问题描述 投票:-2回答:2

当我试图隐藏RelativeLayout在我的Fragment我得到一个Exception RelativeLayout.setVisibility抛出零点Exception。这是我的Fragment代码:

public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.product_description_zoom_image,container,false);
    layout = view.findViewById(R.id.layout_fix);
    layout.setVisibility(View.GONE);
    return view;
}

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:id="@+id/layout_fix">
    <Button
        android:layout_width="190dp"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true"
        android:background="@drawable/border"
        android:id="@+id/btnFavourite"
        android:text="@string/add_to_favourite"
        android:drawableLeft="@drawable/ic_favorite_border_black_24dp"/>
android android-layout android-studio android-fragments android-relativelayout
2个回答
0
投票

试试这个代码..

public class HomeFragment extends Fragment {
RelativeLayout layout;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

    View view=inflater.inflate(R.layout.home_fragment,container,false);
    initView(view);
    return view;

}

private void initView(View view) {
    layout=view.findViewById(R.id.layout_fix);
    layout.setVisibility(View.GONE);
}

}

像..的xml代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/layout_fix">

<Button
    android:layout_width="190dp"
    android:layout_height="50dp"
    android:text="Hellow"/>
</RelativeLayout>

0
投票

看起来Android Studio无法处理太多嵌套布局。因此,请删除父RelativeLayout,并创建一个新的Relative作为父布局的子项,并将所有内容放在新的Relative布局中。这解决了它。

要么

product_description_zoom_image布局没有id layout_fix的任何布局

和你的评论中的问题

Put this code in fragment in which you want to hide toolbar...

 @Override
public void onResume() {
    super.onResume();
    ((AppCompatActivity)getActivity()).getSupportActionBar().hide();
}
@Override
public void onStop() {
    super.onStop();
    ((AppCompatActivity)getActivity()).getSupportActionBar().show();
}
© www.soinside.com 2019 - 2024. All rights reserved.