iPhone의 UITabBar와 비슷한 컨트롤을 만들 필요가 있습니다.이 컨트롤은 내 응용 프로그램의 모든 활동에 표시됩니다. UITabBar는 본질적으로 TAB과 같은 탭을 표시하는 배터리입니다. 모든 버튼은 활동에 매핑됩니다. 나는 이것을위한 두 가지 해결책을 가지고있다.
1. 모든 활동에 대한 레이아웃 XML에 <LinearLayout><Button/><Button/><Button/></LinearLayout>
요소를 삽입한다. 그런 다음 버튼 클릭을 처리 할 공통 리스너 클래스를 만듭니다. 따라서 모든 활동에는이 수신기의 인스턴스가 있습니다.
2. LinearLayout 클래스를 확장하는 사용자 정의 위젯을 만들려면 모든 버튼을 정적 멤버로두고 버튼 클릭을 처리하게합니다. 이 사용자 정의 컨트롤을 모든 화면에 포함 시키십시오.사용자 정의 컨트롤 만들기 또는 단추를 인라인으로 만들기
따라야 할 접근법을 잘 모릅니다. 제발 조언.
첫 번째 방법의 문제 :
1. 보일러 플레이트 코드 (findViewByIds, setOnClickListener 등)
이 많이 생성을 대안은 다음 내가 이것에 대해 생각입니다
감사. 5 개 활동과 3 개 탭 버튼이 될 것입니다 런타임에 생성 버튼 객체의 총 개수가 있다고 가정하면 5 × 3 = 15
나는 두번째 접근을하고 싶은 이유는
1. 모든 코드 (상태 및 동작)는 위젯 클래스에 의해 캡슐화됩니다. 상용구 코드가 적습니다.
2. 버튼은 정적 멤버이므로 런타임에 생성 된 Button 객체의 총 수는 3 개입니다. 하지만 정적 멤버는 JVM이 클래스를 언로드 할 때까지 더 오랜 시간 동안 메모리에 남아있게됩니다. 제어가 모든 화면에 나타나기 때문에 이것이 용인 될 수 있다고 생각합니다.
감사합니다.
내가 말했듯이, 나는 TabBar를 에뮬레이션해야한다. 불행히도, 여기에 어떤 것을 지시하거나 묻는 것은 제 통제가 아닙니다. 필자는 내장 된 TabWidget의 모습이 iPhone의 TabBar처럼 보이도록 사용자 정의 할 수 있다고 생각하지 않습니다. 분명히, 사람들은 응용 프로그램이 다른 응용 프로그램과 다른 것처럼 보이는지 상관하지 않습니다. 두 번째 포인트는 적절한 인 텐트 플래그 (Reorder to front, Clear top 등)를 사용하여 어느 정도 처리 할 수 있다고 생각합니다. 나는 그것이 다소 복잡 할 것이다라고 말해야한다. – Samuh