2010-08-21 8 views
7

내가 만들고있는 앱의 경우 주 메뉴가 한 줄에 2 개씩 6 가지 아이콘으로 구성됩니다. 이것은 여기에 보이는 Twitter 메인 메뉴 레이아웃과 매우 비슷합니다. nothxAndroid에서 기본 메뉴 레이아웃을 설정하는 방법은 무엇입니까?

기본적으로 ... XML 설정은 어떻게해야합니까? LinearLayout, TableLayout? 그리고 아이콘과 텍스트가 균등하게 배열되도록하려면 실제로 무엇을해야합니까? 나는 지금까지 생각할 수있는 모든 것을 시도했지만 아무 소용이 없습니다.

+1

왜 그리드보기를 시도하지? 이 뷰 유형이 여기에 있습니다. 이것이 다른 혁신적인 사고와 결합하는 데 도움이 될 수 있다고 생각합니다. 나는 클릭 할 수 있기 때문에 스위치 케이스 또는 다른 것으로 만들면됩니다. – Shouvik

+0

올바른 것으로 생각되면 답변을 수락하십시오. 동일한 문제에 직면 한 다른 사람들이 솔루션을 더 빨리 찾을 수 있도록 도와줍니다. –

답변

7

예는 (CompoundDrawables와)의 GridView & 텍스트 뷰를 사용 - 내가 전에 이런 짓을 :

main.xml에 :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <GridView android:id="@+id/grid" android:numColumns="2" 
     android:horizontalSpacing="20dip" android:verticalSpacing="20dip" 
     android:stretchMode="columnWidth" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 
</LinearLayout> 

MainActivity :

GridView grid = (GridView) findViewById(R.id.grid); 
     grid.setAdapter(new HomeScreenShortcutAdapter()); 
     grid.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> parent, View v, int position, 
        long id) { 

       startActivity(i); // Specify activity through Intent i 
      } 
     }); 

public class HomeScreenShortcutAdapter extends BaseAdapter { 



     HomeScreenShortcutAdapter() { 

     } 

     @Override 
     public int getCount() { 
      return 0; 
     } 

     @Override 
     public Object getItem(int position) { 
      return null; 
     } 

     @Override 
     public long getItemId(int position) { 
      return 0; 
     } 

     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      TextView tv; 
      final Object data = getItem(position); 

      if (convertView == null) { 

       tv = new TextView(getApplicationContext()); 
       tv.setGravity(Gravity.CENTER); 

      } else { 
       tv = (TextView) convertView; 
      } 

      Drawable icon = data.icon; 
      CharSequence title = data.title; 

      tv.setCompoundDrawablesWithIntrinsicBounds(
        null, icon, null, null); 
      tv.setText(title); 
      tv.setTag(data); 

      return tv; 
     } 

    } 
관련 문제