2011-01-20 3 views
2

RelativeLayout에서 scrollBy()를 사용하여 보이는 화면의 오른쪽으로 버튼을 스크롤하려고합니다. 하지만 나는 빈 화면 만 볼 수있다. 화면 테두리의 단추가 잘리고 화면 이동 후 모든 방향으로 잘립니다.RelativeLayout이 동적으로 생성되었습니다. .scrollBy()를 사용하고 있습니다. 화면을 볼 수 없거나 클릭 할 수 없습니다.

나는 거의 모든 조합의 랩핑 콘텐츠와 충원 부모를 relativelayout 매개 변수에 적용 해 보았습니다.

또한 setContentview()에서 LinearLayout을 사용해 보았지만 작동하지 않았습니다.

가로로 스크롤하려면보기가 필요하며 앱은 항상 가로 모드로 설정됩니다.

누락 된 버튼을 표시 할 수 있도록 레이아웃을 다시 그리거나 새로 고쳐야합니까?

이러한 종류의 기능에는 다른보기 유형을 사용해야합니까?

입력 해 주셔서 감사합니다.

-nathan

다음

에서 onCreate()의 끝 처음부터 모든 코드는 다음과 같습니다

Override 
public boolean onTouchEvent(MotionEvent event) { 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: { 
      currentX = (int) event.getRawX(); 
      currentY = (int) event.getRawY(); 
      break; 
     } 

     case MotionEvent.ACTION_MOVE: { 
      int x2 = (int) event.getRawX(); 
      int y2 = (int) event.getRawY(); 

      r1.scrollBy(currentX - x2 , currentY - y2); 
      currentX = x2; 
      currentY = y2; 
      break; 
     } 
     case MotionEvent.ACTION_UP: { 
      break; 
     } 
    } 
    return true; 
} 
:

package golfcaddy.tools; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MotionEvent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup.LayoutParams; 
import android.widget.Button; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class GolfScoreRel extends Activity implements OnClickListener { 

    // Settings file, preferences 

    public static final String PREFS_NAME = "golfscore"; 
    public static final String PREFS_SCORES = "scores"; 
    public static final String PREFS_BACKGROUND_IMAGE = "backimage"; 

    SharedPreferences mSettings; 

    private int currentX = 0; 
    private int currentY = 0; 

    int numHoles = 0; 
    int numplayers = 0; 

     RelativeLayout r1; 

     LinearLayout lin; 

     public int mLastScoreEntered; 

     //manages unique ID's for all view inside Relative layouts 
     int viewCount = 1; 

    // int holeScoresFront[] = new int[9]; 
    // int holeScoresFrontb[] = new int[9]; 
     Button mLastClicked; 


     Button exitButton; 
     TextView pTotal1; 
     TextView pTotal2; 


    @Override 
    /** Called when the activity is first created. */ 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 



     // lin = new LinearLayout(this); 
     // lin.setOrientation(LinearLayout.VERTICAL); 

     /* not used yet.... 
     GolfPlayer p1 = new GolfPlayer("P 1"); 
     GolfPlayer p2 = new GolfPlayer("P 2"); 
     GolfPlayer p3 = new GolfPlayer("P 3"); 
     GolfPlayer p4 = new GolfPlayer("P 4"); 
     */ 

     RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, 
       LayoutParams.WRAP_CONTENT); 

     r1 = new RelativeLayout(this); // this layout will be set for contentview 

     r1.setLayoutParams(params); 



     numplayers = 4; //standard golf group 
     numHoles = 18; //standard golf round 


     r1.addView(createCard(numplayers,numHoles)); 

     setContentView(r1); 


    } //end oncreate 

여기에 내가 곳에서 빌려 내 r1.scrollBy() 코드가 있어요

스크린 샷 메모 : 오른쪽에 8 개의 버튼이 추가로 표시됩니다.
마지막 장면은 DEBUG 버튼이 잘린 5 명의 선수 카드를 보여줍니다.

Dang, 신규 사용자로서 이미지 게시를 허용하지 않습니다. 여기를보고 시도 : http://groups.yahoo.com/group/nateandroiddev/photos/album/776905892/pic/list?mode=tn&order=ordinal&start=1&dir=asc

답변

0

몇 가지를 내가 모든 코드를 가지고 있지 않기 때문에 시도 :

  1. 시도가 ACTION_MOVE 케이스의 끝에 postInvalidate()를 추가. 그러면 화면이 다시 그려집니다.

  2. onTouchEvent 메서드에서 super()에 대한 호출을 추가하려고합니다.

이 정보가 도움이되지 않는다면 상황을 보여주는 스크린 샷을 통해 어떤 일이 일어나는지 알 수 있습니다. 화면을 스크롤하지 않으면 무효화되지 않은 것처럼 들리므로 상대 레이아웃의 이전 그림을 다시 그리지 않고 스크롤 할 수 있습니다.

+0

감사합니다. Nick, 저것을 시험해 보겠습니다. 스크린 샷을 만들려고 노력할 것입니다. (실제 장치에서 스크린 샷을 찍은 적이 없으며 에뮬레이터 만 사용합니다.) – ndevelop

+0

스크린 샷을 볼 수 있을지 모르겠습니다. 이 얼마나 아픔 ....) – ndevelop

+0

나는 그림을보기 위해 들어갈 수없는 것처럼 보인다. 아마도 imageShack일까요? –

관련 문제