에 TabHost에 표시되지, 나는 내가 TabHost
없이 제대로 표시하는 ExpandableListView
얻을 수 있지만 추가하면 할 수있는 Fragment
ExpandableListView이 조각
에서로드되고있는 TabHost
의 내부에 ExpandableListView
이 TabHost
이 표시되지 않습니다.
탭을 변경하면 목록이 표시되지만 처음보기로드시에는 ExpandableListView
이 표시되지 않습니다.
여기에 코드입니다 : 탭을 전환 할 때
public class Categories extends Fragment {
SearchView searchView; //Not doing anything yet
LayoutInflater inflater;
ExpandableListView expandableListView;
TabHost tabHost;
private ArrayList<String> parentItems = new ArrayList<String>();
private ArrayList<Object> childTitles = new ArrayList<Object>();
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.categories_tabs, null);
searchView = (SearchView) layout.findViewById(R.id.searchView);
this.inflater = inflater;
tabHost = (TabHost) layout.findViewById(R.id.tabhost); // The activity TabHost
tabHost.setup();
TabHost.TabSpec spec; // Reusable TabSpec for each intent;
try
{
//setup tab name, display text, and layout
spec = tabHost.newTabSpec(getResources().getString(R.string.events))
.setIndicator(" " + getResources().getString(R.string.events) + " ")
.setContent(R.id.categoriesLayout); //must be id, not layout or xml
//add tab
tabHost.addTab(spec);
spec = tabHost.newTabSpec(getResources().getString(R.string.venues))
.setIndicator(" " + getResources().getString(R.string.venues) + " ")
.setContent(R.id.categoriesLayout); //must be id, not layout or xml
tabHost.addTab(spec);
//finish adding tabs
tabHost.getTabWidget();
}
catch(Exception e)
{
Log.v(getActivity().getResources().getString(R.string.app_name), "Failed to load tab host");
}
tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener()
{
@Override
public void onTabChanged(String s)
{
displayTab();
}
});
return layout;
}
private void displayTab()
{
//set parentItems - not shown
setGroupParents();
//set childTitles - not shown
setChildData();
MyExpandableAdapter adapter = new MyExpandableAdapter(parentItems, childTitles, childDescriptions);
adapter.setInflater(inflater, getActivity());
expandableListView.setAdapter(adapter);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
expandableListView = (ExpandableListView) view.findViewById(R.id.list);
displayTab();
}
가 displayTab
기능을 실행하면 ExpandableListView
을 보여 주지만, 나는 화면을로드 즉시 목록을 표시해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 내 onStart()
는 ExpandableListView
쇼에
tabHost.setCurrentTab(1);
tabHost.setCurrentTab(0);
를 넣어 경우
부칙
OK, 그래서 지금은 정말 ... 혼동하고있어,하지만 난 그냥
displayTab();
를 넣어 경우
여기에 표시되지 않습니다. OnTabChangeListener
이 수행하는 모든 작업은 실행 중입니다. displayTab
...
뷰가 생성 된 후에 뷰가 생성되기 전에 액티비티가 생성 된 후에'ExpandableListView'에 대한 작업을 시도해 보았습니다 ... 아무 것도 동작하지 않는 것 같습니다. 또한'notifyDataSetChanged'를 호출 해 보았습니다. 행운을 빈다 :-( – Randy
메소드가 실행 중이며 변수가 설정되어 있는지 확인했습니다. 어댑터가 필요한 정보를 얻고 있고,'ExpandableListView '... 모든 일이 일어나고 있지만 목록보기는 조각의 초기로드에 표시되지 않습니다. – Randy
원래 질문에 더 많은 정보를 추가했습니다. – Randy