当前位置:  编程技术>移动开发
本页文章导读:
    ▪[课程]隐藏ActionBar中的MenuItem        [教程]隐藏ActionBar中的MenuItem 有时候我们需要在不同的时候改变ActionBar中MenuItem的项数,或者隐藏某些MenuItem,百度上找了很久没什好资料,还是Google了一下,StackOverFlow上有大神解决了。 先.........
    ▪ Andoir 判断软键盘是不是弹出        Andoir 判断软键盘是否弹出 前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net          雨.........
    ▪ onMeasure跟childview.layout       onMeasure和childview.layoutpublic class CustomViewGroup extends ViewGroup{ public CustomViewGroup(Context context) { super(context); // TODO Auto-generated constructor stub } @Override protected void onMeasure(int widthMeasureSpec, int hei.........

[1][课程]隐藏ActionBar中的MenuItem
    来源: 互联网  发布时间: 2014-02-18
[教程]隐藏ActionBar中的MenuItem


有时候我们需要在不同的时候改变ActionBar中MenuItem的项数,或者隐藏某些MenuItem,百度上找了很久没什好资料,还是Google了一下,StackOverFlow上有大神解决了。


先看看  StackOverFlow 上的问题:

How do I hide a menu item in the actionbar?

   我来总结一下:
   (1)在Activity的onCreateOptionMenu()方法中获取每一个MenuItem,然后再满足某一条件下调用setVisible()方法隐藏该MenuItem。

  
@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		getMenuInflater().inflate(R.menu.action_main, menu);
		MenuItem actionSettings = menu.findItem(R.id.action_settings);
		if(...满足某一条件...){
			actionSettings.setVisible(true);
	        else{
			actionSettings.setVisible(false);
		}
		return true;
	}

    (2)调用Activity的invalidateOptionsMenu()方法,Activity就会重新调用onCreateOptionMenu()方法重新生成ActionBar。不过 invalidateOptionsMenu() 这个方法只有API11以上才能用,但不用担心,Google在V4包的FragmentActivity中也提供了一个supportInvalidateOptionsMenu()方法。


    
[2] Andoir 判断软键盘是不是弹出
    来源: 互联网  发布时间: 2014-02-18
Andoir 判断软键盘是否弹出

前言
         欢迎大家我分享和推荐好用的代码段~~
声明
         欢迎转载,但请保留文章原始出处:
         CSDN:http://www.csdn.net
         雨季o莫忧离:http://blog.csdn.net/luckkof

正文

 

	private boolean mHasInit = false;
	private boolean mHasKeyboard = false;
	private int mHeight;
    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
    	// TODO Auto-generated method stub
    	super.onLayout(changed, l, t, r, b);
    	if(!mHasInit) {
			mHasInit = true;
			mHeight = b;   
			System.out.println("mHeight= "+b);
		} else {
			mHeight = mHeight < b ? b : mHeight;
		}
		
		if(mHasInit && mHeight > b) {                  //mHeight代表键盘的真实高度 ,b代表在窗口中的高度 mHeight>b 
			mHasKeyboard = true;
            Xlog.e(TAG, "bottomBar---------------->出来了");
		}
		if(mHasInit && mHasKeyboard && mHeight == b) {  // mHeight = b 
			mHasKeyboard = false;
			cancelBottomBarAnimation();
            this.setVisibility(View.VISIBLE);
            mShowing = false;
            Xlog.e(TAG, "bottomBar---------------->隐藏了");
		}
    }



    
[3] onMeasure跟childview.layout
    来源: 互联网  发布时间: 2014-02-18
onMeasure和childview.layout
public class CustomViewGroup extends ViewGroup{

	public CustomViewGroup(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	
	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		// TODO Auto-generated method stub

	    final int widthMode = MeasureSpec.getMode(widthMeasureSpec);
        final int widthSize = MeasureSpec.getSize(widthMeasureSpec);
        final int heightMode = MeasureSpec.getMode(heightMeasureSpec);
        final int heightSize = MeasureSpec.getSize(heightMeasureSpec);
        /**
         * 依据specMode的值,如果是AT_MOST,specSize 代表的是最大可获得的空间;如果是EXACTLY,specSize 代表的是精确的尺寸;如果是UNSPECIFIED,对于控件尺寸来说,没有任何参考意义。 
         */
        if (widthMode != MeasureSpec.EXACTLY || heightMode != MeasureSpec.EXACTLY)
        {
            throw new IllegalStateException("ApplicationsStackLayout can only be used with "
                    + "measure spec mode=EXACTLY");
        }
	    measureChildren(widthMeasureSpec, heightMeasureSpec);     

	    setMeasuredDimension(widthSize, heightSize);  
	}

	@Override
	protected void onLayout(boolean changed, int l, int t, int r, int b) {
		// TODO Auto-generated method stub
		int mTotalHeight = 0;  

	       // 遍历所有子视图     
	    int childCount = getChildCount();  
	    for (int i = 0; i < childCount; i++) {  
	        View childView = getChildAt(i);  
	        
	        // 获取在onMeasure中计算的视图尺寸  
	        int measureHeight = childView.getMeasuredHeight();  
	        int measuredWidth = childView.getMeasuredWidth();  
	        if(i==1){
	        	childView.layout(50, mTotalHeight, measuredWidth+50, mTotalHeight + measureHeight);
	        }else
	        childView.layout(l, mTotalHeight, measuredWidth, mTotalHeight + measureHeight);  

	        mTotalHeight += measureHeight;  


	    }  
	}

	
}


使用自定义的ViewGroup

<CustomViewGroup
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="#ffffff">
        <TextView android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:text="fasdjflsadjlf"
            android:background="#555555"/>
        <TextView android:layout_width="wrap_content"
            android:layout_height="50dp"
            android:text="fasdjflsadjlf"
            android:background="#999999"/>
    </CustomViewGroup>



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android录音应用实例教程 iis7站长之家
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3