내가 뷰의 높이를 얻기 위해 노력하고 있으며이 내가 시도 무엇 0안드로이드 : viewHeight를 얻을 프로그램
를 반환 유지 : 없음
View hourView = View.inflate(mContext, R.layout.calendar_hour_item,null);
hourViewHeight = hourView.findViewById(R.id.mainLayout).getHeight();
내가 또한뿐만 아니라 hourViewHeight = hourView.getHeight();
을 시도했지만 즐거움.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/mainLayout" android:background="@layout/border">
<TextView android:text="12am" android:id="@+id/hourTextView"
android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</RelativeLayout>
내가 위의 XML 레이아웃의 높이를 얻으려면 basicllay :
여기@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calendar_day_screen);
Intent intent = getIntent();
mDate = new DateTime(intent.getStringExtra("date"));
circleIcon = (ImageView) findViewById(R.id.circle);
mHoursLayout = (RelativeLayout) findViewById(R.id.dayLayout);
TopBarUtil topBar = new TopBarUtil(getApplicationContext());
circleIcon.setOnClickListener(topBar.onActionClickListener());
mContext = getApplicationContext();
initialize();
}
내 XML 레이아웃입니다 :
내가 여기에있는 초기화() 메서드 내 두 라인 전화 하지만 항상 0을 반환합니다.
편집 : 또한 아래에서 시도 :
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
final View hourView = View.inflate(mContext, R.layout.calendar_hour_item,null);
ViewTreeObserver observer = hourView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
hourView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
hourViewHeight = hourView.getHeight();
Log.d(TAG, "hourViewHeight = " + hourViewHeight);
}
});
// hourViewHeight = hourView.findViewById(R.id.mainLayout).getHeight();
// Log.d(TAG, "hourViewHeight = " + hourViewHeight);
}
감사합니다. 너는 자리에 있었어. – jonney