我正在尝试制作一款具有2种布局的Android应用程序,一种用于手机,另一种用于平板电脑。
我有两个布局,但是我很难用内容填充它们。电话布局(res / layout)包含1个列表视图,该视图从数据库中填充。
平板电脑布局(res / layout-large)有5个单独的列表视图,都需要填充。
基本上我需要一些方法来做到这一点:
if(screensize != large) {
populateSingleListView();
}
else {
populateMultipleListViews();
}
我尝试使用以下代码来执行此操作,但它似乎没有检测到模拟器中的屏幕大小
(getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
解决方案的任何想法?
由于
克里斯
答案 0 :(得分:0)
public void populateList() {
ListView list1 = (ListView) getView().findViewById(R.id.list1);
ListView list2 = (ListView) getView().findViewById(R.id.list2);
if(list1 != null) {
// Do sth
}
if(list2 != null) {
// Sth else
}
}
因此,在小屏幕中,您已经填充了list1和大屏幕。
答案 1 :(得分:0)
我建议为每个列表视图使用片段(以及创建每个片段的类)。
手机布局只有一个,您可以设置平板电脑布局以包含所有这些布局。
如果您定义了在xml中填充片段的类,那么您不必担心选择,框架将为您完成。
答案 2 :(得分:0)
尝试使用显示高度&宽度
DisplayMetrics metrix = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrix);
displayHeigh = metrix.heightPixels;
displayWidth = metrix.widthPixels;
if(displayHeigh > displayWidth){ // or something else
// for phone
}else{
// for tablet
}