java - 使用 LayoutParam 在 android Fragment 中动态设置 ImageView 的高度和宽度

标签 java android android-activity

我在 fragment Activity 中设置 ImageView 的高度和宽度时遇到问题。我正在使用布局参数。我的代码是这样的

 View rootView = inflater.inflate(R.layout.book_details_layout, container, false);
 pdf_image = ((ImageView) rootView.findViewById(R.id.pdf_img));
 pdf_image.setLayoutParams(new LayoutParams(80, 80));

我在这段代码上崩溃了。 logcat 就像

 E/AndroidRuntime(7517): java.lang.ClassCastException:android.view.ViewGroup$LayoutParams cannot be cast to android.widget.RelativeLayout$LayoutParams

 E/AndroidRuntime(7517):    at android.widget.RelativeLayout$DependencyGraph.findRoots(RelativeLayout.java:1722)

 E/AndroidRuntime(7517):    at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1667)
 E/AndroidRuntime(7517):    at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:373)

 E/AndroidRuntime(7517):    at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381)

如何解决这个问题?

最佳答案

显然,您的父 View 是一个 RelativeLayout,您尝试根据它在您的 ImageView 上使用 LayoutParams。这可能会导致 ClassCastException。试试这个:

 pdf_image = ((ImageView) rootView.findViewById(R.id.pdf_img));
 RelativeLayout.LayoutParams paramImage = new RelativeLayout.LayoutParams(80,80);
 pdf_image.setLayoutParams(paramImage);

如果这有帮助,请告诉我。

关于java - 使用 LayoutParam 在 android Fragment 中动态设置 ImageView 的高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23004951/

相关文章:

java - 用于打开/关闭 Wi-Fi 的 NDEF 消息

java - 反序列化时如何正确使用 transient 关键字?

java - 使用Gson将自定义类的ArrayList序列化为JSON并通过HTTP发送数据

android - Kotlin 中的 Retrofit2 + SimpleXML : MethodException: Annotation must mark a set or get method

android - 拒接电话后是否可以开始 Activity ?

java - 我的 R.java 文件中的错误无法解决

Android Twilio 可编程聊天在应用程序进入后台时断开连接

android - 旧版 Android SDK 上的 java.lang.NoClassDefFoundError

android - RemoteService - 在关闭启动 Activity 后重新启动

android - Activity 生命周期图与生命周期描述的矛盾