java.lang.ClassCastException: android.widget.LinearLayout 无法转换为 android.widget.ScrollView
java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.ScrollView
我收到这个错误有一段时间了,在这里搜索了解决方案但没有任何效果。我正在尝试以编程方式在我的片段中添加 scrollview,它有一个 linearlayout 作为根元素。
我的片段布局xml
<LinearLayout 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"
android:background="#481327"
tools:context="com.gov.dmrd.disastermanagement.TestFragment3">
</LinearLayout>
fragment oncreateview
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
LinearLayout innerLayout = (LinearLayout) inflater.inflate(R.layout.fragment_test_fragment3, container, false);
innerLayout.setOrientation(LinearLayout.VERTICAL);
innerLayout.setScrollBarStyle(LinearLayout.SCROLLBARS_INSIDE_OVERLAY);
ScrollView sv = (ScrollView) inflater.inflate(R.layout.fragment_test_fragment3, container, false);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
name = getResources().getStringArray(R.array.personnel_name);
rank = getResources().getStringArray(R.array.personnel_rank);
for (int i = 0; i < name.length; i++){
TextView tv1 = new TextView(container.getContext());
tv1.setText(name[i]);
innerLayout.addView(tv1, params);
TextView tv2 = new TextView(container.getContext());
tv2.setText(rank[i]);
innerLayout.addView(tv2, params);
}
sv.addView(innerLayout);
return sv;
}
java.lang.ClassCastException: android.widget.LinearLayout cannot be
cast to android.widget.ScrollView
因为试图将 LinearLayout
转换为 ScrollView
I'm trying to add the scrollview in my fragment programmatically which
has a linearlayout as root element
动态创建 ScrollView
并将其添加到 innerLayout
:
View view=(View)inflater.inflate(R.layout.fragment_test_fragment3,
container, false);
ScrollView sv =new ScrollView(getActivity()); //<< create ScrollView object
LinearLayout innerLayout=new LinearLayout(getActivity());//<<create LinearLayout
//...your code here
sv.addView(innerLayout);
view.addView(sv);
return view;
我收到这个错误有一段时间了,在这里搜索了解决方案但没有任何效果。我正在尝试以编程方式在我的片段中添加 scrollview,它有一个 linearlayout 作为根元素。
我的片段布局xml
<LinearLayout 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"
android:background="#481327"
tools:context="com.gov.dmrd.disastermanagement.TestFragment3">
</LinearLayout>
fragment oncreateview
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
LinearLayout innerLayout = (LinearLayout) inflater.inflate(R.layout.fragment_test_fragment3, container, false);
innerLayout.setOrientation(LinearLayout.VERTICAL);
innerLayout.setScrollBarStyle(LinearLayout.SCROLLBARS_INSIDE_OVERLAY);
ScrollView sv = (ScrollView) inflater.inflate(R.layout.fragment_test_fragment3, container, false);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
name = getResources().getStringArray(R.array.personnel_name);
rank = getResources().getStringArray(R.array.personnel_rank);
for (int i = 0; i < name.length; i++){
TextView tv1 = new TextView(container.getContext());
tv1.setText(name[i]);
innerLayout.addView(tv1, params);
TextView tv2 = new TextView(container.getContext());
tv2.setText(rank[i]);
innerLayout.addView(tv2, params);
}
sv.addView(innerLayout);
return sv;
}
java.lang.ClassCastException: android.widget.LinearLayout cannot be cast to android.widget.ScrollView
因为试图将 LinearLayout
转换为 ScrollView
I'm trying to add the scrollview in my fragment programmatically which has a linearlayout as root element
动态创建 ScrollView
并将其添加到 innerLayout
:
View view=(View)inflater.inflate(R.layout.fragment_test_fragment3,
container, false);
ScrollView sv =new ScrollView(getActivity()); //<< create ScrollView object
LinearLayout innerLayout=new LinearLayout(getActivity());//<<create LinearLayout
//...your code here
sv.addView(innerLayout);
view.addView(sv);
return view;