首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListActivity全屏法

ListActivity全屏法
EN

Stack Overflow用户
提问于 2015-02-09 14:33:19
回答 4查看 180关注 0票数 0

我已经创建了一个7天的名单,并希望名单采取全屏。但这份名单的底部有一个缺口。我想要消除这个缺口。

我的代码如下:

代码语言:javascript
复制
package com.example.collegehack;

进口android.app.ListActivity;

代码语言:javascript
复制
import android.content.Intent;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Days extends ListActivity {

    String days[] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
            "Saturday", "Sunday" };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(Days.this,
                android.R.layout.simple_list_item_1,days));
    }

    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        String temporary = days[position];
        try {
            Class ourClass = Class.forName("com.example.collegehack"
                    + temporary);

            Intent ourIntent = new Intent(Days.this, ourClass);
            startActivity(ourIntent);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

请帮我解决这个问题。提前谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-02-09 15:06:21

要做到这一点,你需要膨胀你自己的观点。

遵循以下步骤:

1.创建包含textViewmy_layout.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView 
    android:id="@+id/textView1"
    android:gravity="center_vertical"
    android:layout_centerVertical="true"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</RelativeLayout>

2.在适配器中,您需要覆盖getView()方法,并按如下方式设置行高:

代码语言:javascript
复制
setListAdapter(new ArrayAdapter<String>(MainActivity.this,
            android.R.layout.simple_list_item_1,days) {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if(convertView == null) {
                convertView = getLayoutInflater().inflate(R.layout.my_layout, parent, false);
                convertView.getLayoutParams().height = parent.getHeight() / getCount();
                convertView.requestLayout();
                TextView tv = (TextView) convertView.findViewById(R.id.textView1);
                tv.setText(getItem(position));
            }
            return convertView;
        }
    });

3.禁用列表滚动,因为在此解决方案中分隔器的高度不计,您的listView将滚动1毫米:

代码语言:javascript
复制
getListView().setOnTouchListener(new OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_MOVE) {
                return true; // Indicates that this has been handled by you
                                // and will not be forwarded further.
            }
            return false;
        }
    });

就这样!玩得开心:)

票数 0
EN

Stack Overflow用户

发布于 2015-02-09 14:55:49

如果您的列表不需要展开或向下滚动,并且总是有有限的行数(即。(一周中的几天),考虑不使用ListView。使用带有七个LinearLayoutTextViews,并设置每个android:layout_weight=1android:layout_height="0dp" LinearLayout将在TextViews中均匀地分配空白。

然后,您可以为每个setOnClickListener设置TextViews来执行您想要的操作。

票数 2
EN

Stack Overflow用户

发布于 2015-02-09 15:12:11

您可以使列表的字体更大或使用自定义列表视图,或者如果您的活动不需要展开或滚动,可以使用线性布局和其中的一些按钮。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28412135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档