SearchFilterDialog 满屏设置记录
2015-12-01 09:40
459 查看
import android.app.ActionBar; import android.app.Dialog; import android.app.DialogFragment; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.FrameLayout; import android.widget.ListView; import android.widget.TextView; import com.kidswant.ss.R; import com.kidswant.ss.ui.search.adapter.FilterAdapter; import com.kidswant.ss.ui.search.model.KeyModel; import com.kidswant.ss.util.DisplayUtil; import java.util.List; public class SearchFilterDialog extends DialogFragment { private List<KeyModel[]> keyModelListdel; public void setDatas(List<KeyModel[]> keyModelListdel) { this.keyModelListdel=keyModelListdel; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(android.support.v4.app.DialogFragment.STYLE_NO_FRAME, R.style.Theme_Dialog_RIGHT); } Dialog dialog; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.search_filter_dialog, null,false); // view.setMinimumWidth(getActivity().getResources().getDisplayMetrics().widthPixels /5*4);//这个是设置宽度的,这是最小高度 ,但是可能会被撑大 view.setMinimumWidth(getActivity().getResources().getDisplayMetrics().widthPixels);//这个是设置宽度的,是满屏的关键设置 view.setMinimumHeight(getActivity().getResources().getDisplayMetrics().heightPixels);//这个是设置高度的,是满屏的关键设置,再在布局里设置百分比 ListView listView = (ListView)view.findViewById(R.id.recyclerView_type); View sku_footer = inflater.inflate(R.layout.sku_footer, null,false); listView.addFooterView(sku_footer); FrameLayout frameLayout = (FrameLayout)view.findViewById(R.id.fl); frameLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { dialog.dismiss(); return false; } }); FilterAdapter categoryAdapter = new FilterAdapter(view.getContext()); listView.setAdapter(categoryAdapter); return view; } @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { dialog = super.onCreateDialog(savedInstanceState); WindowManager.LayoutParams lp = dialog.getWindow().getAttributes(); lp.gravity = Gravity.RIGHT; dialog.getWindow().setAttributes(lp); // dialog.onWindowAttributesChanged(lp); dialog.setCanceledOnTouchOutside(true); return dialog; } }
<?xml version="1.0" encoding="utf-8"?> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fl" xmlns:app="http://schemas.android.com/apk/res-auto" android:background="@android:color/transparent" xmlns:android="http://schemas.android.com/apk/res/android"> <android.support.percent.PercentRelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/transparent" > <!-- app:layout_widthPercent="80%"--> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" app:layout_widthPercent="100%" android:id="@+id/rlll" android:background="@android:color/white" android:layout_alignParentRight="true" > <ListView android:id="@+id/recyclerView_type" android:background="@android:color/white" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@null" android:layout_alignParentRight="true" /> </RelativeLayout> </android.support.percent.PercentRelativeLayout> </FrameLayout>
style name="Theme.Dialog.Bottom" parent="@android:style/Theme.Light.NoTitleBar"> <item name="android:windowFrame">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:windowAnimationStyle">@style/DataSheetAnimation</item> </style> <style name="Theme.Dialog.RIGHT" parent="Theme.Dialog.Bottom"> <item name="android:windowAnimationStyle">@style/DataSheetAnimationRIGHT</item> </style> <style name="DataSheetAnimationRIGHT" parent="@android:style/Animation.Dialog"> <item name="android:windowEnterAnimation">@anim/push_left_in</item> <item name="android:windowExitAnimation">@anim/push_right_out</item> </style>
push_left_in
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/> </set>
push_right_out
<set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="300"/> </set>
补充:in:首先从本位右边控件宽度的的位置开始回到本位
out:从本位向右边控件的宽度画出来
相关文章推荐
- Eclipse快捷键 10个最有用的快捷键
- 网页页面实现自动刷新的3种代码
- LeetCode -- String to Integer (atoi)
- 人民币成功“入篮”SDR,这意味着什么?
- BlueprintListener的使用
- 并行编程
- 插件刷新会崩溃
- LeetCode -- Rotate Array
- javascript定义类和类的实现实例详解
- LeetCode -- Reverse Bits
- 白手起家学习数据科学 ——Probability之“Bayes's 原理和随机变量篇”(四)
- sprintf的缓冲区溢出问题
- Oracle 中的 TO_DATE 和 TO_CHAR 函数 日期处理
- java开发工具比较(16个工具修订版)
- return特点
- URL传递参数长度限制
- LeetCode -- Remove Duplicates From Sorted Array 2
- diff()差分
- vs 中大括号之间垂直虚线显示
- 【Qt Warning】No1:Debug build