【发布时间】:2015-01-01 17:58:24
【问题描述】:
是否可以一次在 Eclipse 中预览所有 Android XML 布局文件?
(我不认为以不同的屏幕分辨率、主题或 API 预览一个布局!)
我有许多类似的对话框,有时我需要预览所有布局以找到我需要的一个。
【问题讨论】:
-
你应该为你的每一个布局命名适当的名字,这样你就可以通过它们的名字来识别它们。
标签: android eclipse file layout preview
是否可以一次在 Eclipse 中预览所有 Android XML 布局文件?
(我不认为以不同的屏幕分辨率、主题或 API 预览一个布局!)
我有许多类似的对话框,有时我需要预览所有布局以找到我需要的一个。
【问题讨论】:
标签: android eclipse file layout preview
这是一个独立的活动:
请求:
如果有人能建议一种方法以编程方式添加布局名称以在视图更新后显示在布局上,那就太好了。
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)
{}
}
}
(根据需要添加导入、修饰符、异常处理程序等)
【讨论】:
您不能在 1 个窗口中同时显示它们。但您可以同时打开多个文件。
可以让多个文件彼此相邻,也可以作为浮动窗口。
喜欢:
【讨论】: