此時需從 將DecorView從WindowManager中移除 開始講起:移除 Window 窗口任務(wù)是通過 ActivityThread.handleDestoryActivity()完成。View.post() 任務(wù)被執(zhí)行的有效期是在 Activity 生命周期 onDestory()后。
成都創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),虛擬空間、主機租用、主機托管,四川、重慶、廣東電信服務(wù)器租用,成都移動機房托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
gndroid:orientation “horizontal為水平布局)。
聽你的意思,你的按鈕的寬度是不定的,如果是固定的,你可以獲取按鈕的寬度,但是在onCreate函數(shù)里面的控件貌似還沒有被畫出來,所以會是0,我建議你可以用相對布局避開這個問題。
這種直接繼承框架類的一些缺點也開始慢慢的顯現(xiàn)出來。
通過RunningTaskInfo的topActivity獲取當(dāng)前Activity實例。通過該種方式獲取的Activity,只能保證其已經(jīng)執(zhí)行了Activity.onCreate方法,不能保證是否執(zhí)行了Activity.onResume方法。該方法在api 21以后已經(jīng)被禁,使用需謹(jǐn)慎。
1、首先看你這個view的父容器是什么,如果是LinearLayout,就聲明一個 LinearLayout.LayoutParams,然后設(shè)置寬高、margin、padding之類的屬性。
2、你這個View是怎么使用的?是在activity的xml文件中把它當(dāng)一個控件放進去的嗎?如果是這樣的話,你直接xml里面設(shè)置寬高就行。如果你是new 一個View出來的,然后代碼控制它的具體位置的話,也是能設(shè)置這個View寬高的。
3、原理 a)getLayoutParams()和setLayoutParams()都是控件基類view的public方法,在外部也可以直接調(diào)用。
4、線性布局是我們經(jīng)常使用的,先從它入手來熟悉代碼布局。
5、我一般都是讓ScrollView wrap_content ,然后ScrollView里的布局不要wrap_content,比如里面嵌套一個RelaytiveLayout,這個RelaytiveLayout的高度寫死。
點擊事件你會把,這個就不說了,設(shè)置寬高 就是 button.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));LayoutParams具體導(dǎo)入什么包就得看你外面用的是什么。
在對應(yīng)的控件中使用android:layout_width標(biāo)簽即可。
首先在layout文件夾下面的xml布局文件中,添加代碼來建立Button。然后在可視化界面通過拖拽方式添加Button,如下圖所示。通過代碼來獲取到添加的Button實例。R.id來獲取指定的名稱,而這個名稱又唯一對應(yīng)了控件ID。
打開AndroidStudio新建一個線性布局,添加一個按鈕控件, 按鈕屬性:layout_width是設(shè)置按鈕的長度大小 按鈕的layout_height是設(shè)置高度大小。紅色框框里面的屬性是設(shè)置按鈕的偏移位置的。
如下,打開AndroidStudio新建一個線性布局,添加一個按鈕控件。按鈕屬性:layout_width是設(shè)置按鈕的長度大小,按鈕的layout_height是設(shè)置高度大小。
在ConstraintLayout中給控件設(shè)置min的寬度和高度,必須是要控件的layout_width或者layout_height為wrap_content或者0dp時。給控件設(shè)置max的寬度或者高度的時候,必須是要控件的layout_width或者layout_height為0dp時。
,控制其控件的總體高度,可以通過布局直接設(shè)置layout_height,也可以動態(tài)賦值給他,但我相信樓主問的不是這個。2,控制每個單元的高度。
item的控制是在adapter中,你只要在你Gridview長和寬改變時,傳入Gridview長和寬作為參數(shù),設(shè)計一個小的算法,控制adapter中子view的長和寬即可,記得調(diào)用adapter.notifyDataSetChanged()函數(shù)更新UI。
設(shè)置下RowHeadersWidth屬性就可。GridVew ,可以 試試GridView.Columns.[i].width。點視圖綁定數(shù)據(jù)源那有個編輯模板,那可設(shè)置。
GridLayout是網(wǎng)格布局,它會均分你的布局容器,所以行列高度和寬度是統(tǒng)一的,只能通過調(diào)整布局容器大小來改變。
綜上,如果你設(shè)置大小,導(dǎo)致show_popvieView沾滿整個屏幕,那么window容器最為底層,設(shè)置的背景坑定是看不見的。建議:背景設(shè)置采用設(shè)置show_popvieView的背景。
設(shè)置的是popupwindow(window容器)的背景。popUpWindow = new PopupWindow(show_popvieView,LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); //是將show_popvieView放入容器中,以自適應(yīng)作為大小,且容器也采用自適應(yīng)。
在你的布局中放入一個空的ListView控件,看看能不能解決。