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>

  • 相关阅读:
    元组-琢磨已久的购物车程序
    学习使我充实自己-列表具备的功能
    很高兴今天用PYTHON3写了三级菜单程序!
    python内建模块shlex将普通字符串编码成符合linux shell的字符串
    HTTPS能登陆,HTTP不行
    linux shell判断输入的是哪个不可见字符,例如^X(Ctrl-X)
    TI CC3200做ETSI EN 300 328 认证
    使用systemd-resolved的系统中DNS来源优先级
    systmed-timesyncd中NTP服务器地址来源优先级
    markdown的简单应用实例
  • 原文地址:https://www.cnblogs.com/hnpy/p/5455239.html
Copyright © 2011-2022 走看看