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

ViewGroup 으로 LinearLayout.HORIZONTAL 의 기능을 구현해보려구합니다

0 추천
ViewGroup 으로 LinearLayout.HORIZONTAL 의 기능을 구현해보려구합니다

그러니까 addView 했을때 차곡차곡 옆으로 배치되게하고싶습니다

addView(child, index) 처름 인덱스를 정해서 추가할수있도록...

관련해서 기르침부탁합니다

혹 비슷한예제있으면 갈켜주시면 큰도움될것같습니다
잡부 (5,110 포인트) 님이 2015년 2월 23일 질문

2개의 답변

0 추천

질문하신대로 그대로 코드로 옮기면 됩니다;

activity_main.xml 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
       
    <Button android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Add View" />
    
    <LinearLayout
        android:id="@+id/horizontalLinear"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/button1" />
    
</RelativeLayout>
 
MainActivity.java
 
LinearLayout mHorizontalLinear;
int mCount = 0;
 
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        mHorizontalLinear = (LinearLayout) findViewById(R.id.horizontalLinear);
        findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
 
             @Override
             public void onClick(View v) {
                  mCount++;
                  Button button = new Button(getBaseContext());
                  button.setLayoutParams(new LayoutParams(50, LayoutParams.MATCH_PARENT));
                  button.setText(mCount + "");
                  mHorizontalLinear.addView(button, index); // index는 작성자 취향에 맞게 넣으면됨 
                   }
            });
}
Gradler (109,780 포인트) 님이 2015년 2월 23일 답변
ViewGroup 을 상속받아서 그기능을 직접구현하고싶은겁니다
LinearLayout 을 직접사용하지않구여...
0 추천
onLayout 을 이용하시면 되는데 android full 소스 중 launcher 소스를 분석해보시면 도움이 됩니다.

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/2.3_r1/com/android/launcher2/Workspace.java?av=f
aucd29 (218,390 포인트) 님이 2015년 2월 23일 답변
...