如何在Android中隐藏基于布局的actionbar
我想禁用actionBar,当布局为较小的设备更改时,但我不知道如何做到这一点。也许我会的如何在Android中隐藏基于布局的actionbar,android,android-actionbar,Android,Android Actionbar,我想禁用actionBar,当布局为较小的设备更改时,但我不知道如何做到这一点。也许我会的 ActionBar actionBar = getSupportActionBar(); actionBar.hide(); 但是如何检查布局呢?很简单,您可以使用此示例获得屏幕的大小,然后根据需要隐藏操作栏 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); d
ActionBar actionBar = getSupportActionBar();
actionBar.hide();
但是如何检查布局呢?很简单,您可以使用此示例获得屏幕的大小,然后根据需要隐藏
操作栏
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
double x = Math.pow(dm.widthPixels/dm.xdpi,2);
double y = Math.pow(dm.heightPixels/dm.ydpi,2);
double screenInches = Math.sqrt(x+y);
它将以英寸为单位显示屏幕的大小。如果你想要像素,你可以使用
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
希望对您有所帮助也许您最好的方法是将res/values的style.xml复制到res/values mdpi(或您所需的布局大小),并将AppTheme更改为style+.NoActionBar
例如:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
如果要检查加载的布局,可以向布局中添加标记,例如:
ldpi布局:
<RelativeLayout
android:width="match_parent"
android:height="match_parent"
android:id="@+id/mainlayout"
android:tag="ldpi" >
<RelativeLayout
android:width="match_parent"
android:height="match_parent"
android:id="@+id/mainlayout"
android:tag="mdpi" >
在这种情况下有许多选择
首先,您确定您的应用程序在没有操作栏的情况下可用吗?e、 g.为什么大型设备上需要一个操作栏,而小型设备上却不需要它
你在使用安卓系统吗(我推荐)?如果是这样,您可以选择在布局xml文件中较小屏幕的布局中不包含工具栏。e、 g.将工具栏包括在layout large
目录中,并将其从layout small
中排除。然后,当您在活动/片段中绑定视图时,处理找不到工具栏视图的情况
Toolbar toolbar = (Toolbar)findViewById(R.id.myToolbar);
if(toolbar != null) {
//set up my toolbar here which might include
setSupportActionBar(toolbar);
}
另一种选择是对不同大小的屏幕使用多种样式。其中,对于大屏幕,您的风格是主题.AppCompat.Light.darkaActionBar
,对于小屏幕,您的风格是主题.AppCompat.Light.NoActionBar
使用显示指标
public void setAppInvisible() {
actionBar.setVisibility(View.INVISIBLE);
// Or actionBar.hide();
}
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
if(screenWidth < 500){
setAppInvisible();
}
public void setAppInvisible(){
actionBar.setVisibility(View.INVISIBLE);
//或actionBar.hide();
}
DisplayMetrics dm=新的DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth=dm.widthPixels;
如果(屏幕宽度<500){
setAppInvisible();
}
public void setAppInvisible() {
actionBar.setVisibility(View.INVISIBLE);
// Or actionBar.hide();
}
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
if(screenWidth < 500){
setAppInvisible();
}