java - 将自定义 View 放入自定义 ScrollView 中

标签 java android view scrollview

我正在创建一个带有自定义 View 和自定义 ScrollView 的 Android 应用程序。我试图将自定义 View 放在 ScrollView 中。它似乎不起作用,因为我只是收到一个空白屏幕。

Dashboard.java

package com.commentblock.fandoms;

import com.commentblock.fandom.R;
import com.commentblock.fandom.R.layout;

import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.Toast;

public class Dashboard extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Set the content view to the dashbaord
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.setContentView(new StatusViewScroll(this));

    }
}

StatusViewScroll.java

package com.commentblock.fandoms;

import android.content.Context;
import android.view.View;
import android.widget.RelativeLayout;
import android.widget.ScrollView;

public class StatusViewScroll extends RelativeLayout {
    public StatusViewScroll(Context c) {
        super(c);
        ScrollView scrollView = new ScrollView(c);
        StatusView statusView = new StatusView(c);
        scrollView.addView(statusView);
        addView(scrollView);
    }
}

StatusView.java 在没有 ScrollView 的情况下工作得很好,但是当我将它添加到 ScrollView 时,它就坏了。没有错误,只是黑屏。

最佳答案

我自己解决了我的问题。问题出在 StatusView.java 上,我需要重写 onMeasure 事件。

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    WindowManager wm = (WindowManager) this.getContext().getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    setMeasuredDimension(display.getWidth(), display.getHeight());
}

关于java - 将自定义 View 放入自定义 ScrollView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291008/

相关文章:

java - 按指定顺序从 LinkedHashMap 中检索 KeySet

android - 如何获取此 map 代码的当前位置?当我打开 map 时还试图从服务器接收车辆数据

android - 如何将 View 发送到后面?如何以编程方式控制 z 顺序?

java - 为什么无法将 List<Set<String>> 复制/转换为 SortedMap<Set<String>,Integer>?

java - 正则表达式用给定的字符数替换所有单词

java - GUI 未按预期更新/控制流问题

Android - 自定义标题栏渐变问题

android - 如何将图像转换为 Base64 字符串?

iOS 嵌入 View

android - 使用android的按钮的上下文菜单?