是否可以一次預覽Eclipse中的所有Android XML佈局文件?預覽Eclipse中的所有Android XML佈局文件
(我不認爲預覽在不同的屏幕分辨率,主題或API一個單一的佈局!)
我有很多類似的對話,有時我需要預覽所有的佈局,以找到一個我需要的。
是否可以一次預覽Eclipse中的所有Android XML佈局文件?預覽Eclipse中的所有Android XML佈局文件
(我不認爲預覽在不同的屏幕分辨率,主題或API一個單一的佈局!)
我有很多類似的對話,有時我需要預覽所有的佈局,以找到一個我需要的。
無法在1個窗口中一次顯示全部。但是你可以同時打開多個文件。
可能有多個文件彼此相鄰,但也可以作爲浮動窗口。
像:
下面是一個自包含的活動:
請求:
將是巨大的,如果有人能提出一個方法來添加布局名編程方式出現在視圖更新後的佈局。
public class MainActivity extends Activity
{
List<Integer> layoutIds = new ArrayList<Integer>();
Map<Integer, String> layoutNameMap = new HashMap<Integer, String>();
int curIdx = 0;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
loadLayoutIds();
showNext();
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
showNext();
return true;
}
private void showNext()
{
if (curIdx >= layoutIds.size())
curIdx = 0;
int layoutId = (int) layoutIds.get(curIdx);
setContentView(layoutId);
String msg = layoutNameMap.get(layoutId);
Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show();
curIdx++;
}
private void loadLayoutIds()
{
try
{
Class<?> c = R.layout.class;
Field[] fields = c.getDeclaredFields();
for (Field field : fields)
{
Class<?> t = field.getType();
if(t == int.class)
{
int layoutId = field.getInt(null);
String name = field.getName();
// Because /layout folder can have different layout files,
// use some prefix to indicate which files are at the "activity level"
// This way the following IF controls which layout files make it in
if (! name.startsWith("activity_"))
continue;
Log.d("tag", "cur field = " + name + ", cur layoutId = " + layoutId);
layoutIds.add(layoutId);
layoutNameMap.put(layoutId, name);
}
}
}
catch (Exception e)
{}
}
}
(根據需要添加進口,改性劑,異常處理等)
您應該爲每個佈局給出適當的名稱,以便您可以通過其名稱來識別它們。 – joao2fast4u 2014-11-05 14:22:05