我想在调用showDialog时使用linearlayout做同样的效果。很容易禁用线性布局的所有组件,但如何更改颜色?
是否有可能在布局上留下一些阴影?
感谢您的回答。
答案 0 :(得分:1)
感谢Asok的建议,我发现了这个:
这对我来说是正确的。
我如何将setClickable设置为ALL child:
TraverseChildren(GetChildren(_llRest), false);
,其中
private void TraverseChildren(ArrayList<View> childrenList, boolean b) {
for (View view : childrenList) {
view.setClickable(b);
view.setEnabled(b);
if (view instanceof ViewGroup)
TraverseChildren(GetChildren((ViewGroup)view), b);
}
}
private ArrayList<View> GetChildren(ViewGroup view) {
ArrayList<View> children = new ArrayList<View>();
for (int i = 0; i < view.getChildCount(); i++)
if (view.getChildAt(i) != null)
children.add(view.getChildAt(i));
return children;
}
答案 1 :(得分:0)
我认为我不太清楚你想做什么。如果您只想更改布局的颜色,可以使用android:background
属性在XML声明中执行此操作,也可以使用布局对象上的方法setBackground
或setBackgroundResource
以编程方式执行此操作。如果你想让你要显示的活动看起来有点像对话框(具有半透明的背景等),最简单的方法就是像往常一样将所有内容留在该布局上,并将主题应用于清单:
<activity android:theme="@android:style/Theme.Dialog">
答案 2 :(得分:0)
您可以setAlpha
向父级将透明度应用于所有视图子级。
以下是我创建视图以覆盖主要布局时所采用的方法示例:
RelativeLayout mainRelativeLayout = (RelativeLayout)findViewById(R.id.mainlayout);
mainRelativeLayout.setAlpha((float).45);
在这种情况下,我的mainRelativeLayout
包含许多ImageViews
和TextViews
,它们都继承了透明度。这给了我影子的效果。
setAlpaha
类的 View
仅支持API 11+或平台版本/ Android OS Ver 3.0 +