本案例比较简单,就是使用activity自定义成Dialog样式的加载页面,就是弹出框形式。
第一步:我们先对下拉页面的样式进行定义MyDialogStyleTop,在styles.xml文件中,如下:
<style name="AnimTop" parent="@android:style/Animation">
<item name="android:windowEnterAnimation">@anim/push_top_in</item>
<item name="android:windowExitAnimation">@anim/push_top_out</item>
</style>
<style name="MyDialogStyleTop" parent="android:Theme.Dialog">
<item name="android:windowAnimationStyle">@style/AnimTop</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">false</item>
<!-- 模糊 -->
</style>
第二步;设计加载页面的xml布局top_dialog.xml,比较简单直接代码:
<?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="fill_parent" >
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="46dp" >
<LinearLayout
android:id="@+id/main_dialog_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:background="@drawable/group_bg"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="全部"
android:textColor="#fff"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/grouplist_item_bg_prs" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="我的微薄"
android:textColor="#00cc00"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="周边"
android:textColor="#fff"
android:textSize="18sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="8dp"
android:text="特别关注"
android:textColor="#fff"
android:textSize="18sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
第三步:创建dropPopupWindow类继承Activity,我这里没有做任何操作,直接显示xml布局内容,根据需要自己设计,代码如下:
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.Toast;
public class dropPopupWindow extends Activity{
private LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.top_dialog);
layout=(LinearLayout)findViewById(R.id.main_dialog_layout);
layout.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "提示:点击窗口外部关闭窗口!", Toast.LENGTH_SHORT).show();
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event){
finish();
return true;
}
}
第四步:在首页中设置标题文本监听事件点击启动列表:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView title;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
title = (TextView) this.findViewById(R.id.title);
// 把文字控件添加监听,点击弹出自定义窗口
title.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 使用startActivityForResult启动picPopupWindow
startActivity(new Intent(MainActivity.this,dropPopupWindow.class));
}
});
}
}
第五步;运行效果如下:
- 大小: 26.5 KB
分享到:
相关推荐
在Android平台上,自定义下拉列表是一个常见的需求,特别是在创建用户界面时,为了提供良好的交互体验,开发者常常需要实现类似于Spinner的功能,但又不希望它弹出一个对话框(Dialog)。在这种情况下,我们可以使用...
在创建自定义下拉选择框时,我们通常会基于PopupWindow进行扩展,以便添加我们需要的功能和样式。 接着,让我们详细讲解一下自定义下拉选择框的实现步骤: 1. **创建布局文件**:设计下拉选择框的界面布局,包括...
在Android开发中,`PopupWindow` 是一个非常实用的组件,它可以用来创建各种弹出式视图,如菜单、对话框或自定义的下拉框。本知识点将深入讲解如何利用`PopupWindow`来实现一个自定义的下拉框。 首先,`PopupWindow...
总结起来,自定义下拉刷新Viewgroup是一个结合了Android基础知识、触摸事件处理、动画和回调机制的综合实践。通过这样的自定义实现,开发者可以创造出与应用品牌和用户体验相符的下拉刷新效果,提升整体应用的质量。
它通常用于创建快捷菜单、下拉列表或者其他临时性的UI元素。PopupWindow具有高度的可定制性,可以设置背景、宽度、高度、动画效果等。 下面我们将按照以下步骤来实现一个自定义的下拉框: 1. **创建布局文件**: ...
总之,Android自定义下拉刷新ListView涉及到了手势检测、动画制作、适配器扩展、接口回调、布局设计等多个技术环节,每个环节都至关重要,需要开发者有扎实的Android基础和良好的编程习惯。通过不断地实践和优化,...
总之,自定义下拉筛选菜单是Android开发中的一个重要技巧,它涉及到布局设计、事件处理、动画应用等多个方面。通过实践和学习,开发者不仅可以提高自己的技能,还能为用户提供更加便捷、友好的交互体验。
在给定的项目资源中,"Android-自定义ListView下拉刷新-可直接使用"应该包含了实现这些功能的代码示例。通过研究这些代码,开发者可以快速理解并应用到自己的项目中。需要注意的是,为了提高性能,避免在主线程中...
这篇博客(虽然链接不可用)可能讨论了如何在Android的Activity中集成和自定义下拉刷新功能。下面我们将深入探讨这个主题。 1. **SwipeRefreshLayout**: Android官方提供了一个叫做SwipeRefreshLayout的组件,它...
在Android开发中,下拉列表(Dropdown List)是一种常见的用户界面元素,用于展示一组可选择的选项。这种组件通常在有限的空间内展示大量的数据,并且可以让用户通过点击或滑动来展开和收起选项。本篇文章将深入探讨...
以上就是关于在Android Studio中实现自定义ListView,包括下拉刷新、滑动操作和上拉加载的详细步骤。通过这些功能,可以极大地提升应用的用户体验,使得用户在浏览大量数据时更加便捷和舒适。在实际开发中,还可以...
在Android开发中,Spinner是一个非常常见的控件,它通常用于展示一个下拉列表供用户选择。本教程将详细讲解如何在Android Studio 3.0.1环境下实现Spinner的多选功能,这对于创建交互式用户界面非常有用。 首先,...
综上所述,这个自定义下拉刷新实例展示了Android开发中的自定义View能力,手势检测,动画实现,以及如何将UI交互与业务逻辑分离。通过学习这个实例,开发者可以深入了解Android UI组件的扩展性,并掌握自定义下拉...
1. 自定义样式:可以通过修改`spinner_dropdown_item.xml`来改变下拉菜单的样式,或者使用`app:popupTheme`属性来应用全局的主题。 2. 动画效果:利用Animation API可以为Spinner添加展开和收起的动画效果,提高...
然而,Android SDK自带的SwipeRefreshLayout只能处理简单的下拉刷新效果,如果你需要更复杂的功能,如自定义刷新动画或拖动排序(就像"DragListView"这个库提供的),可能需要使用第三方库。DragListView是一个支持...
在Android应用开发中,用户界面的设计与交互是至关重要的,其中下拉列表样式的筛选组件是一种常见的交互元素,尤其在电商、生活服务类应用中,如美团,它们提供了便捷的筛选选项供用户快速定位需求。本篇将详细介绍...
在Android开发中,自定义标题栏是提升应用用户体验和界面个性化的重要手段。Android Studio作为官方推荐的集成开发环境,提供了丰富的工具和API来帮助开发者实现这一目标。本篇将详细探讨如何在Android Studio中实现...
在Android开发中,Menu通常用于显示应用程序中的操作选项,如在顶部栏或下拉菜单中。自定义Menu允许开发者根据应用需求设计独特的交互方式和视觉样式。本篇将深入探讨如何在Android中实现自定义Menu。 首先,我们...