我正在创建一个带有自定义 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/