마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

HeaderGridView 에서 header 위치 오류

0 추천

안녕하세요.

 

지금 gridview에 head를 넣어야 해서 HeaderGridView(https://gist.github.com/goodev/9341869)를 쓰고 있습니다.

그런데 add header를 하고 난뒤 뷰를 확인하면 이런식으로 나오네요

 

header 뷰가 왼쪽으로 치우치고 1/3 가량이 짤려서 나오네요.

 

public class MainActivity extends ActionBarActivity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		HeaderGridView gd = new HeaderGridView(this);
		gd.setBackgroundColor(Color.rgb(248, 248, 248));
		gd.setPadding(FCUtils.getDimen(getBaseContext(), R.dimen.margin_25dp), 
				FCUtils.getDimen(getBaseContext(), R.dimen.margin_54dp), 
				FCUtils.getDimen(getBaseContext(), R.dimen.margin_25dp), 
				(int)FCUtils.getDimen(getBaseContext(), R.dimen.margin_109dp));
		gd.setVerticalScrollBarEnabled(false);
		gd.setOverScrollMode(View.OVER_SCROLL_NEVER);
		gd.setNumColumns(2);
		gd.setGravity(Gravity.CENTER_HORIZONTAL);
		gd.setVerticalSpacing(FCUtils.getDimen(this, R.dimen.margin_9dp));
		gd.setHorizontalSpacing(FCUtils.getDimen(this, R.dimen.margin_10dp));
		gd.setClipToPadding(false);
		gd.setSelector(new ColorDrawable(Color.TRANSPARENT));
		ImageView header = new ImageView(this);
		header.setImageResource(R.drawable.banner_01);
		gd.addHeaderView(header);
		gd.setAdapter(new A());
		setContentView(gd);
	}
	
	class A extends BaseAdapter{

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return 15;
		}

		@Override
		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			ImageView iv = new ImageView(MainActivity.this);
			iv.setImageResource(R.drawable.abd_btn_intro_kakaotalk);
			return iv;
		}
		
	}

}

구현 소스는 이렇습니다. 

혹시 왜 이런 현상이 나오는지 아시는분 있나요;;??

갈무리 (12,430 포인트) 님이 2014년 8월 19일 질문

1개의 답변

0 추천

GridView 속성 중에, 

android:gravity="center" 속성을 없애면 됩니다.
 
    <HeaderGridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/top_layout"
        android:gravity="center"  <==== 이걸 삭제 하시기 바랍니다.
        android:horizontalSpacing="10dp"
        android:numColumns="2"
        android:verticalSpacing="10dp"
         >
 
여기선 
gd.setGravity(Gravity.CENTER_HORIZONTAL);
를 제거해야 겠네요.
 
 
익명사용자 님이 2014년 8월 22일 답변
2014년 8월 25일 수정
...