Android 通过编程更改文本视图的高度和宽度
我有一个文本视图,我想更改宽度以匹配父对象,并更改高度以保留换行内容。它嵌套在水平线性布局中。它是三个文本视图中的第二个,每个文本视图的权重为1。当运行此特定片段时,它会将其他两个按钮设置为Android 通过编程更改文本视图的高度和宽度,android,layoutparams,Android,Layoutparams,我有一个文本视图,我想更改宽度以匹配父对象,并更改高度以保留换行内容。它嵌套在水平线性布局中。它是三个文本视图中的第二个,每个文本视图的权重为1。当运行此特定片段时,它会将其他两个按钮设置为 previousButton.setVisibility(View.GONE); nextButton.setVisibility(View.GONE); 文本视图 <TextView android:id="@+id/home"
previousButton.setVisibility(View.GONE);
nextButton.setVisibility(View.GONE);
文本视图
<TextView
android:id="@+id/home"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="HOME"
android:layout_weight="1"
android:background="@drawable/button_selector"
android:layout_marginLeft="10dp"
android:layout_marginBottom="10dp"
android:padding="10dp"
android:gravity="center"
android:textColor="#000000"
android:textStyle="bold"
android:onClick="home"
/>
当我运行它时,我得到一个错误:
java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
您的TextView父布局是什么?线性,相对还是什么? 线性布局的示例:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
homeButton.setLayoutParams(params);
必须基于其父布局创建参数。什么是TextView父布局?线性,相对还是什么? 线性布局的示例:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
homeButton.setLayoutParams(params);
必须基于其父布局创建参数。假设父布局为
线性布局
LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
homeButton.setLayoutParams(layoutParam);
假设您的父母是
线性布局
LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
homeButton.setLayoutParams(layoutParam);
您已经给出了布局\u width=“0dp”和布局\u weight=“1”。所以,当其他两个按钮隐藏时。此主页按钮将全宽显示。但是View.INVISIBLE不会将它们从获取宽度中移除。您应该使用View.GONE,这样即使它们不可见,也不应采用宽度 无形的:
This view is invisible, but it still takes up space for layout purposes.
走了:
您不需要在Home TextView上再次设置布局参数。您已经给出了布局\u width=“0dp”和布局\u weight=“1”。所以,当其他两个按钮隐藏时。此主页按钮将全宽显示。但是View.INVISIBLE不会将它们从获取宽度中移除。您应该使用View.GONE,这样即使它们不可见,也不应采用宽度 无形的:
This view is invisible, but it still takes up space for layout purposes.
走了:
您不需要在Home TextView上再次设置布局参数。错误非常明显。您不能将
视图组
强制转换为线性布局
。所以我假设您的TextView
的父布局是线性的?错误是相当明显的。您不能将视图组
强制转换为线性布局
。因此,我假设您的TextView
的父布局是线性的?开发人员已经以编程方式使用了View.GONE属性开发人员已经以编程方式使用了View.GONE属性