zoukankan      html  css  js  c++  java
  • 事件分发

    package com.zcp.sjff;

    import com.zcp.view.Mylist;

    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.MeasureSpec;
    import android.view.ViewGroup;
    import android.view.ViewGroup.LayoutParams;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;

    public class MainActivity extends Activity {
    String[] books = {"A语言","B语言","C语言","D语言","E语言","A1语言","B1语言","C1语言","D1语言","E1语言","A2语言","B2语言","C2语言","D2语言","E2语言","A2语言","B2语言","C语言","D语言","E语言"};
    private Mylist listview;
    private ArrayAdapter ladapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listview=(Mylist)findViewById(R.id.listview);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, books);
    listview.setAdapter(adapter);
    setListViewHeightBasedOnChildren(listview);
    }
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);

    }
    private void setListViewHeightBasedOnChildren(Mylist listView) {
    ladapter=(ArrayAdapter)listView.getAdapter();
    if(ladapter!=null){
    return;
    }
    int totalHeight=0;
    for (int i = 0; i <ladapter.getCount(); i++) {
    View item = ladapter.getView(i, null,listView);
    if(item!=null){
    item.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    item.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
    totalHeight += item.getMeasuredHeight();
    }
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (ladapter.getCount() - 1))
    + listView.getPaddingTop() + listView.getPaddingBottom();
    int h = getWindowManager().getDefaultDisplay().getHeight();
    if(params.height > h/2){
    params.height = h/2;
    }
    listView.setLayoutParams(params);
    }

    }

    //自定义listview

    package com.zcp.view;

    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.ListView;

    public class Mylist extends ListView {

    public Mylist(Context context, AttributeSet attrs) {
    super(context, attrs);

    }


    }

    //自定义ScrollView

    package com.zcp.view;

    import android.content.Context;
    import android.util.AttributeSet;
    import android.widget.ScrollView;

    public class ScView extends ScrollView {

    public ScView(Context context, AttributeSet attrs) {
    super(context, attrs);

    }

    }

    Xml配置布局

    <com.zcp.view.ScView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    <LinearLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical"
    >
    <com.zcp.view.Mylist
    android:id="@+id/listview"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    <Button
    android:id="@+id/change"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text="改变listview的高"
    />
    </LinearLayout>

    </com.zcp.view.ScView>

  • 相关阅读:
    php操作mysql数据库
    Java获得某目录下文件总大小
    Flex Air 主窗口和多个子窗口从属显示 拂晓风起
    actionscript AES 加密 解密 拂晓风起
    Flex 可以拖出窗口的panel 拖动panel变为窗口 拂晓风起
    Flash builder打包as actionscript代码,发布swc 拂晓风起
    网站安全登录 web应用安全登录 密码 防截获 拂晓风起
    Flex透明窗体做法 spark的Window加Skin 拂晓风起
    PHP开发环境搭建 (XAMPP+Xdebug+netbeans,配置调试) 拂晓风起
    SSH 项目过程中遇到的问题和解决方法汇总 struts2 spring hibernate 拂晓风起
  • 原文地址:https://www.cnblogs.com/hnpy/p/5455239.html
Copyright © 2011-2022 走看看