標籤:
在項目中想要實現一個頭部的toast提示效果,類似
再實現的過程中發現,如果直接通過修改Toast的View布局的父控制項寬度是無法實現效果的,後來是通過直接用代碼指定父控制項內部的textview的寬度實現了。下面是具體的代碼:
private static void makeToast(String msg) { if (toastView == null) { LayoutInflater inflater = (LayoutInflater) AppApplication.getInstance().getSystemService(Context.LAYOUT_INFLATER_SERVICE); params = new LinearLayout.LayoutParams(AppApplication.mScreenWidth, ViewGroup.LayoutParams.MATCH_PARENT); toastView = inflater.inflate(R.layout.toast_custom_prompt, null); } TextView tv = (TextView) toastView.findViewById(R.id.tvTitleToast); tv.setLayoutParams(params); tv.setText(msg); toast = new Toast(AppApplication.getInstance()); float hOffset = AppApplication.getInstance().getResources().getDimension(R.dimen.common_title_height); toast.setGravity(Gravity.TOP, 0, (int) hOffset); toast.setDuration(Toast.LENGTH_LONG); toast.setView(toastView); toast.show();}
上面的方式使用到了我自己寫的一個計算螢幕寬高的小方法:
private void calcScreenSize() { DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); mScreenWidth = dm.widthPixels; mScreenHeight = dm.heightPixels; AppApplication.mScreenWidth = mScreenWidth; AppApplication.mScreenHeight = mScreenHeight;}
通過上面的步驟就能在標題列下方顯示一個自訂的toast提示
Android自訂Toast寬度無法設定問題解決