null을 뷰 루트로 전달하지 않도록 합니다( 부풀린 레이아웃의 루트 요소에서 레이아웃 매개 변수를 확인해야 함).
루트 스튜디오에 null을 전달하면 다음 경고가 표시됩니다.
null을 뷰 루트로 전달하지 않도록 합니다( 부풀린 레이아웃의 루트 요소에서 레이아웃 매개 변수를 확인해야 함).
다음에 null 값을 표시하고 있습니다.getGroupView
.제발 도와주세요.
public class ExpandableListAdapter extends BaseExpandableListAdapter {
private Context _context;
private List<String> _listDataHeader; // header titles
// child data in format of header title, child title
private HashMap<String, List<String>> _listDataChild;
public ExpandableListAdapter(Context context, List<String> listDataHeader,
HashMap<String, List<String>> listChildData) {
super();
this._context = context;
this._listDataHeader = listDataHeader;
this._listDataChild = listChildData;
}
@Override
public Object getChild(int groupPosition, int childPosititon) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.get(childPosititon);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
final String childText = (String) getChild(groupPosition, childPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_item, null);
}
TextView txtListChild = (TextView) convertView
.findViewById(R.id.lblListItem);
txtListChild.setText(childText);
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(groupPosition))
.size();
}
@Override
public Object getGroup(int groupPosition) {
return this._listDataHeader.get(groupPosition);
}
@Override
public int getGroupCount() {
return this._listDataHeader.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);
if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = infalInflater.inflate(R.layout.list_group, null);
}
TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);
return convertView;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
하는 대신에
convertView = infalInflater.inflate(R.layout.list_item, null);
하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다
convertView = infalInflater.inflate(R.layout.list_item, parent, false);
지정된 상위 항목으로 확장되지만 상위 항목에 연결되지는 않습니다.
에 대한 좋은 기사를 찾았습니다.LayoutInflater
저자는 모든 버전이 어떻게 사용되는지 설명합니다.inflate
방법 작업 및 예를 제시합니다.ListView
그리고.AlertDialog
http://www.doubleencore.com/2013/05/layout-inflation-as-intended/
업데이트 #1.
이 대답은 최근 저에게도 도움이 되었습니다.https://stackoverflow.com/a/5027921/1065835
여기 있습니다. 어떤 이유에서인지 레이아웃에서 평면으로 부풀리는 대신 View.plate를 사용하면 보풀 오류가 사라집니다.이 스레드가 구글 검색의 맨 위에 있기 때문에 여기에 게시해야 한다고 생각했습니다.
view = View.inflate(context,R.layout.custom_layout,null);
편집:
이 답변을 작성할 당시 저는 린트 억제에 대해 알지 못했습니다.IDE를 속이지 말고 린트를 억제하는 것이 좋습니다.행 또는 메서드 위에 추가합니다.
@SuppressLint("InflateParams")
이전 답변:
당신이 정말로 아무것도 가지고 있지 않을 때.parent
(예: 보기 만들기)AlertDialog
), 당신은 통과하는 것 외에 다른 방법이 없습니다.null
따라서 경고를 방지하려면 다음을 수행합니다.
final ViewGroup nullParent = null;
convertView = layoutInflater.inflate(R.layout.list_item, nullParent);
위해서AlertDialog
아래 코드를 사용할 수 있습니다.
convertView = layoutInflater.inflate(R.layout.list_item, findViewById(android.R.id.content), false);
이것을 해결할 방법을 찾다가 찾은 좋은 정보.데이브 스미스에 따르면,
레이아웃 확장은 Android의 컨텍스트에서 XML 레이아웃 리소스가 구문 분석되고 View 개체의 계층 구조로 변환되는 시기를 나타내는 데 사용되는 용어입니다.
그ViewGroup
보다 높은 수준의 스타일링을 상속하기 위해 가압 방법 매개 변수의 일부가 사용되기 때문에 여기에 요청되었습니다.null을 통과하는 것은 해롭지 않은 것처럼 보일 수 있지만 실제로 나중에 앱에 심각한 문제를 일으킬 수 있습니다.자세한 내용은 여기를 참조하십시오.
다음은 참조용 사진입니다.
return inflater.inflate(R.layout.some_layout, container, true);
// for the last parameter use true, false or simply don't declare
언급URL : https://stackoverflow.com/questions/24832497/avoid-passing-null-as-the-view-root-need-to-resolve-layout-parameters-on-the-in
'programing' 카테고리의 다른 글
H1 텍스트를 로고 이미지로 대체: SEO 및 접근성을 위한 최선의 방법? (0) | 2023.08.02 |
---|---|
함수에서 이 포인터 반환 (0) | 2023.08.02 |
내용에 셀 너비 맞춤 (0) | 2023.08.02 |
NodeJS 암호화와 함께 SHA-256 사용 (0) | 2023.08.02 |
Oracle Text 인덱싱 속도를 높이거나 인덱서가 낮은 로드 시간에만 작동하도록 합니다. (0) | 2023.08.02 |