我正在使用毕加索将图片从网页加载到我应用的抽屉菜单中。 但现在我遇到了一个问题,我被困了一整天 这是我的xml:
</FrameLayout>`<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:clickable="true">
<LinearLayout
android:id="@+id/vGlobalMenuHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ivMenuUserProfilePhoto"
android:layout_width="@dimen/global_menu_avatar_size"
android:layout_height="@dimen/global_menu_avatar_size"
android:layout_margin="12dp" />
</LinearLayout>
这是我的Java文件:
public class MyMenuFragment extends MenuFragment {
private ImageView ivMenuUserProfilePhoto;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_menu, container,
false);
ivMenuUserProfilePhoto = (ImageView)view.findViewById(R.id.ivMenuUserProfilePhoto);
setupHeader();
return setupReveal(view) ;
}
private void setupHeader() {
int avatarSize = getResources().getDimensionPixelSize(R.dimen.global_menu_avatar_size);
String profilePhoto = getResources().getString(R.string.user_profile_photo);
Picasso.with(getActivity())
.load(profilePhoto)
.placeholder(R.drawable.img_circle_placeholder)
.resize(avatarSize, avatarSize)
.centerCrop()
.transform(new CircleTransformation())
.into(ivMenuUserProfilePhoto);
}
现在,当我运行此项目时,控制台会报告错误“由以下引起:java.lang.IllegalArgumentException:Target不能为null。”
我调试过,发现 ivMenuUserProfilePhoto确实为空,但我不知道为什么会发现findviewById不起作用?
答案 0 :(得分:0)
看起来你不小心搬到了XML文件的开头而不是它应该的结尾。你还添加了一个`也不需要在那里。
所以看起来应该是这样的:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:clickable="true">
<LinearLayout
android:id="@+id/vGlobalMenuHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/ivMenuUserProfilePhoto"
android:layout_width="@dimen/global_menu_avatar_size"
android:layout_height="@dimen/global_menu_avatar_size"
android:layout_margin="12dp" />
</LinearLayout>
</FrameLayout>
希望它能解决它:D
答案 1 :(得分:0)
getActivity()
,它可能会返回null,因为片段可能无法与活动完全附加。您应该尝试从setupHeader()
拨打onAttach(Activity activity)
。您可以参考此参考链接 - getActivity() returns null in Fragment function。