xamarin.android 实现 Activity 底部弹出对话框菜单

Resources/drawable 下新增如下文件:
push_bottom_in.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- 上下滑入式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" > <translate
android:duration=""
android:fromYDelta="100%p"
android:toYDelta=""
/>
</set>
push_buttom_out.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- 上下滑出式 -->
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration=""
android:fromYDelta=""
android:toYDelta="98%p" />
</set>
在 values/Styles.xml 新增如下样式
<style name="AnimBottom" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@drawable/push_bottom_in</item>
<item name="android:windowExitAnimation">@drawable/push_buttom_out</item>
</style> <style name="MyDialogStyleBottom" parent="android:Theme.Holo.DialogWhenLarge">
<item name="android:windowAnimationStyle">@style/AnimBottom</item>
<item name="android:windowFrame">@null</item>
<!-- 边框 -->
<item name="android:windowIsFloating">true</item>
<!-- 是否浮现在activity之上 -->
<item name="android:windowIsTranslucent">true</item>
<!-- 半透明 -->
<item name="android:windowNoTitle">true</item>
<!-- 无标题 -->
<item name="android:windowBackground">@android:color/transparent</item>
<!-- 背景透明 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 模糊 -->
</style>
新增如下文件 Resources/layout/LoginMenuPopupWindow.axml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical">
<LinearLayout
android:id="@+id/pop_layout"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
android:layout_alignParentBottom="true"
android:background="#EEE"
android:layout_width="match_parent">
<Button
android:id="@+id/btn_smsloginauthentication_loginmenupopupwindow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="通过短信验证登陆"
android:background="@drawable/v_line"
android:textColor="@color/fonts_color" />
<Button
android:id="@+id/btn_changepassword_loginmenupopupwindow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="修改密码"
android:background="@drawable/v_line"
android:textColor="@color/fonts_color" />
<Button
android:id="@+id/btn_cancel"
android:layout_marginTop="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="取消"
android:textColor="@color/fonts_color"
android:background="@drawable/top_line" />
</LinearLayout>
</RelativeLayout>
对应的Activity 代码 LoginMenuPopupWindow.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using static Android.Views.View; namespace Dorid
{
[Activity(Theme = "@style/MyDialogStyleBottom")]
public class LoginMenuPopupWindow : Activity, IOnClickListener
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.LoginMenuPopupWindow); var windowManager = WindowManager;
var windowManagerLayoutParams = Window.Attributes;
var displayMetrics = new Android.Util.DisplayMetrics();
windowManager.DefaultDisplay.GetMetrics(displayMetrics);
windowManagerLayoutParams.Width = (int)(displayMetrics.WidthPixels * ); // 宽度设置
Window.Attributes = windowManagerLayoutParams; var btn_cancel = FindViewById<Button>(Resource.Id.btn_cancel);
var btn_changepassword = FindViewById<Button>(Resource.Id.btn_changepassword_loginmenupopupwindow);
var btn_smsloginauthentication = FindViewById<Button>(Resource.Id.btn_smsloginauthentication_loginmenupopupwindow); btn_cancel.SetOnClickListener(this);
btn_changepassword.SetOnClickListener(this);
btn_smsloginauthentication.SetOnClickListener(this);
// Create your application here
} public void OnClick(View v)
{
Intent intent = new Intent();
switch (v.Id)
{
case Resource.Id.btn_smsloginauthentication_loginmenupopupwindow:
intent.PutExtra("Type", "SmsLogin");
SetResult(Result.Ok, intent);
break;
case Resource.Id.btn_changepassword_loginmenupopupwindow:
intent.PutExtra("Type", "ChangePassword");
SetResult(Result.Ok, intent);
break;
case Resource.Id.btn_cancel:
default: break;
}
Finish();
} public override bool OnTouchEvent(MotionEvent e)
{
Finish();
return base.OnTouchEvent(e);
}
}
}
xamarin.android 实现 Activity 底部弹出对话框菜单的更多相关文章
- Android仿IOS底部弹出选择菜单ActionSheet
使用Dialog的实现方式,解决原ActionSheet使用Fragment实现而出现的部分手机取消按钮被遮盖的问题 java部分代码: import android.app.Dialog; impo ...
- Android使用Activity用作弹出式对话框
转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/23116115 Android中可用于实现对话框的有Dialog,PopupWin ...
- Android BottomSheet:底部弹出Fragment面板(4)
Android BottomSheet:底部弹出Fragment面板(4) BottomSheet不仅可以弹出轻量级的定制好的面板(见附录文章5,6,7),还可以弹出"重"的 ...
- 拍照选择图片(Activity底部弹出)
效果图如下: 第一步 : 显示出的布局文件:alert_dialog.xml <?xml version="1.0" encoding="utf-8"?& ...
- Android广播接收器里弹出对话框
不多说,直接上车... public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(fina ...
- Android仿ios底部弹出框效果
准备: public class ActionSheet { public interface OnActionSheetSelected { void onClick(int whichButton ...
- AndroidSweetSheet:从底部弹出面板(1)
AndroidSweetSheet:从底部弹出面板(1) AndroidSweetSheet又是一个从底部弹出面板的开源项目.我在以前写的文章中介绍了不少这些项目,见附录文章5,6,7,8.现在 ...
- Android 底部弹出Dialog(横向满屏)
项目中经常需要底部弹出框,这里我整理一下其中我用的比较顺手的一个方式(底部弹出一个横向满屏的dialog). 效果图如下所示(只显示关键部分): 步骤如下所示: 1.定义一个dialog的布局(lay ...
- 转 android 从底部弹出一个popuwindow,渐入渐出效果。我这里是用在购物车需要选择购买选项的操作。
最近要改客户端,需要实现一个从底部弹出的popuwindow,像我这种渣渣android技术,能整出popuwindow但是整不出动画,百度之,记录一下. 从下面这个地址转的 http://blog. ...
随机推荐
- python 匿名函数 lambda 的使用
在python中,lambda允许用户快速定义单行函数,当然用户也可以按照典型的函数定义完成函数.lambda的目的就是简化用户定义使用函数的过程. In [6]: s = lambda x: x+1 ...
- webpack快速入门——实战技巧:优雅打包第三方类库
下面说两种方法: 一. 1.引入jQuery,首先安装: cnpm install --save jquery 2.安装好后,在我们的entry.js中引入: import $ from 'jquer ...
- java对象的结构
[Java对象解析]不得不了解的对象头 一个Java对象到底占用多大内存? JVM源码分析之java对象头实现 java对象在内存中的结构(转帖) 一个Java对象到底占多大内存? 在Hotspot ...
- Hbuilder用ajax连接eclipse中的servlet例子以及注意事项
今天用前端神器Hbuilder连接eclipse中的servlet,真是费了九牛二虎之力,才把问题解决 Hbuilder中的代码: test.html <!DOCTYPE html> &l ...
- 剑指offer四十二之和为S的两个数字
一.题目 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 二.思路 数列满足递增,设两个头尾两个指针i和j,若ai + ...
- Java之IO(四)DataInputStream和DataOutputStream
转载请注明源出处:http://www.cnblogs.com/lighten/p/6986155.html 1.前言 DataInputStream和DataOutputStream分别继承了Fil ...
- jenkins自动部署tomcat
关于部署的3种思路: 远程部署(jenkins编译部署到远程服务器): 安装ssh插件 ssh插件配置 添加远程jenkins服务器节点: 本地部署(与jenkins在同一服务器): 关于maven构 ...
- 关于Spring的一点东西
Spring IoC 容器 容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁.Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件.这些对象被称为 Spr ...
- Python -- 网络编程 -- 抓取网页图片 -- 豆瓣妹子
首先分析页面URL,形如http://dbmeizi.com/category/[1-14]?p=[0-476] 图片种类对应编号: 1:'性感', 2:'有沟', 3:'美腿', 4:'小露点', ...
- mysql Inoodb 内核
MySQL从5.5版本开始将InnoDB作为默认存储引擎,该存储引擎是第一个完整支持事务ACID特性的存储引擎,且支持数据行锁,多版本并发控制(MVCC),外键,以及一致性非锁定读. 作为默认存储引擎 ...