如何在android中将一个视图放在前面并让其他视图留在它后面?
Posted
技术标签:
【中文标题】如何在android中将一个视图放在前面并让其他视图留在它后面?【英文标题】:How to take a view to the front and make other views stay behind it in android? 【发布时间】:2019-07-01 04:51:33 【问题描述】:我正在尝试制作一个 android 应用程序,以便当我单击特定视图时,它会将其带到每个视图的前面,并让其他视图留在它后面,颜色会稍微变暗。 例如:这个 whatsapp 配置文件显示布局。(配置文件位于所有事物之上,我们可以与之交互)
我想知道特定小部件的相关关键字、主题或名称,以学习最终实现此视图以及动画。任何达成解决方案的方法也将不胜感激。
我尝试过使用不同的方式将图像放在前面等。但这并没有解决问题。
【问题讨论】:
medium.com/@xabaras/… 检查here How to send view to back ? How to control the z-order programmatically?的可能重复 您可以创建自定义警报对话框。有关教程,请参阅此链接 - simplifiedcoding.net/android-custom-dialog-example。根据需要更改对话框的布局。 @Syed 无需为此创建自定义对话框.. 【参考方案1】:您可以通过创建自定义警报对话框并将布局添加到其中来实现此目的。
public class CvvHelpDialog extends Dialog
public CvvHelpDialog(@NonNull Activity context)
super(context);
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_cvv_help);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
getWindow().setAttributes(lp);
对于 R.layout.dialog_cvv_help,您可以根据需要设计布局。您只需使用以下代码行即可显示它。
CvvHelpDialog cvvDialog = new CvvHelpDialog(getActivity());
cvvDialog.show();
【讨论】:
【参考方案2】:创建一个具有透明背景的activity
或fragment
,并将图像置于activity
或fragment
的中心。只需启动新活动或显示片段。
或者您也可以为此使用DialogFragment
。
您可以使用 元素转换 让动画从其他 WhatsApp 个人资料图片中弹出一个视图。
【讨论】:
【参考方案3】:您可以使用 Dialog 。 对话框后面的屏幕会自动变暗。您无需执行任何操作。
https://androidexample.com/Custom_Dialog_-_Android_Example/index.php?view=article_discription&aid=88
【讨论】:
【参考方案4】:只需创建对话框并添加您的自定义视图来执行此操作......就像这样
AlertDialog.Builder builder =new AlertDialog.Builder(this);
View view = LayoutInflater.from(this).inflate(R.layout.custom_layout,null);
builder.setView(view);
builder.show();
对话框何时出现..背景将自动透明。
【讨论】:
【参考方案5】:您可以在同一布局中创建一个视图,其中自定义视图位于中心,灰色背景围绕该视图。当您需要显示时 - 使其可见并为背景视图组设置 isEnable = false
【讨论】:
以上是关于如何在android中将一个视图放在前面并让其他视图留在它后面?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone - 我如何隐藏视图并让它的空间被其他视图使用(如 android visibility = GONE)
iPhone - 我如何隐藏视图并让它的空间被其他视图使用(如 android visibility = GONE)