android 手动设置 布局高度

41 篇文章 0 订阅
32 篇文章 0 订阅

由于本人在项目中遇到一个这样一个需求,页面显示menu菜单,且菜单有默认背景和选中背景,而且还是一行4个项目,系统默认是一行3个项目,故放弃使用menu控件,采用布局,定义好4个功能按钮,但用户按下menu键时显示,再按时隐藏

以下是我的代码

Activity01.java

package mars.listview;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;

public class Activity01 extends ListActivity {
 /** Called when the activity is first created. */
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
  for (int i = 0; i <= 20; i++) {
   HashMap<String, String> map1 = new HashMap<String, String>();
   map1.put("user_name", "zhangsan"+i);
   map1.put("user_ip", "192.168.0.1"+i);
   list.add(map1);
  }
  SimpleAdapter listAdapter = new SimpleAdapter(this, list,
    R.layout.user, new String[] { "user_name", "user_ip" },
    new int[] { R.id.user_name, R.id.user_ip });
  setListAdapter(listAdapter);
 }

 @Override
 public boolean onKeyDown(int keyCode, KeyEvent event) {
  if (keyCode == event.KEYCODE_MENU) {
   RelativeLayout ly2 = (RelativeLayout)this.findViewById(R.id.listLinearLayout2);
  
   if(View.VISIBLE==ly2.getVisibility()){
    ly2.setVisibility(View.GONE);
    
    LinearLayout ly = (LinearLayout)this.findViewById(R.id.listLinearLayout);
    LinearLayout.LayoutParams Scrollparams = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.FILL_PARENT,
      LinearLayout.LayoutParams.WRAP_CONTENT);
    Scrollparams.width = LinearLayout.LayoutParams.FILL_PARENT;
    Scrollparams.height = LinearLayout.LayoutParams.FILL_PARENT;
    Scrollparams.topMargin = 0;
    Scrollparams.bottomMargin = 0;
    ly.setLayoutParams(Scrollparams);
   }else{
    LinearLayout ly = (LinearLayout)this.findViewById(R.id.listLinearLayout);
    LinearLayout.LayoutParams Scrollparams = new LinearLayout.LayoutParams(
      LinearLayout.LayoutParams.FILL_PARENT,
      LinearLayout.LayoutParams.WRAP_CONTENT);
    Scrollparams.width = LinearLayout.LayoutParams.FILL_PARENT;
    Scrollparams.height = 350;
    Scrollparams.topMargin = 0;
    Scrollparams.bottomMargin = 0;
    ly.setLayoutParams(Scrollparams);
    
    ly2.setVisibility(View.VISIBLE);
   }
   
   
  }

  return super.onKeyDown(keyCode, event);
 }

 protected void onListItemClick(ListView l, View v, int position, long id) {
  // TODO Auto-generated method stub
  super.onListItemClick(l, v, position, id);
  System.out.println("id----------------" + id);
  System.out.println("position----------" + position);
 }

}

main.xml

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <LinearLayout android:id="@+id/listLinearLayout"
  android:layout_width="fill_parent" android:layout_height="fill_parent"
  android:orientation="vertical">
  <ListView android:id="@id/android:list" android:layout_width="fill_parent"
   android:layout_height="wrap_content" android:drawSelectorOnTop="false"
   android:scrollbars="vertical" />
 </LinearLayout>
 <RelativeLayout android:id="@+id/listLinearLayout2"
  android:layout_width="fill_parent" android:layout_height="50px"
  android:background="#ffffff"
  android:visibility="gone"
  android:orientation="vertical">
 </RelativeLayout>
</LinearLayout>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值