我使用自定義 framelayout 後inflate乙個布局的方式來靜態的使用乙個寫好的布局,免去手寫布局的麻煩
public class titlebar extends framelayout {
layoutinflater.from(context).inflate(r.layout.myview_title_bar, this);
//直接改變布局,從而靜態的使用子控制項\
xmlns:看到標題欄是白色的,是因為標題欄是藍色的framelayout中巢狀的titlebar布局是白色的。android
=""xmlns:
=""android
:layout_width=
"match_parent"
android
:layout_height=
"match_parent"
android
:background=
"#f00"
android
:orientation=
"vertical"
>
android
:layout_width=
"match_parent"
android
:layout_height=
"wrap_content"
android
:background=
"@color/blue"
android
:fitssystemwindows=
"true"
:title_text=
"標題欄"
/>
android
:layout_width=
"match_parent"
android
:layout_height=
"300dp"
android
:background=
"#ff0"
android
:text=
"主體內容\n第二行\n第三行\n第四行"
/>
android
:layout_width=
"match_parent"
android
:layout_height=
"wrap_content"
/>
發現頂部狀態列變成了藍色,看來這是自定義titlebar的問題,fitssystemwindows屬性讓titlebar的paddingtop增加了乙個狀態列高度,但由於titlebar的子view高度固定了,導致titlebar本身的藍色漏出來。若要避免這種情況可以1、將titlebar子view的高度固定為撐滿,而titlebar高度設為固定,2、將titlebar的背景色設為同子view的顏色。3、改為給titlebar子view設定fitssystemwindows屬性。
沉浸式狀態列適配不同的版本
先帖 在慢慢的分析 這個方法在oncreat 方法中呼叫,也可以在baseactivity中呼叫private voidinitwindows 5.0 及以上if build.version.sdk int build.version codes.lollipop else if build.ver...
沉浸式狀態列的實現
public class setstatusbartranslucent method setstatusbarcolor.invoke activity.getwindow 0x00000000 catch nosuchmethodexception e catch illegalargument...
沉浸式狀態列的實現
在android 4.4之前,我們的應用沒發改變手機的狀態列的顏色,當我們開啟應用的時候,在螢幕的頂部有一天黑色的狀態列,和應用的風格非常不協調,為提供更好的介面互動,google在android 4.4以後提供了設定沉浸式狀態列的方法,對於沉浸式狀態列的這個面工資存在爭議,實際的效果其實是透明的狀...