2015-08-22 61 views
-1

我有一个布局,其中顶部季度始终相同,但下部需要使用特定于表示对象状态的“子布局”。根据对象状态更改android“sublayout”

我可以使用“父”布局和多个特定于状态的布局来实现吗?

(特定国家的布局既可以在运行时嵌入父布局,或各子布局的可能“包括”父布局。)

+2

你为什么不能使用列表视图用头和一个孩子,并为参考对象的行会,这将决定要显示的视图类型的状态。 – Triode

+0

这可能是一种不必要的复杂情况,尤其是当状态特定的sublayout需要处理点击本身时。 – fadedbee

回答

0

考虑答案的反对票和缺乏,我担心这是不可能的。事实证明,直截了当,一旦我添加了一个占位符视图到LinearLayout(在索引2)。

LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

    ViewGroup linearLayout = (ViewGroup) view.findViewById(R.id.linearLayout); 

    int stateLayout; 
    switch (peer.commState) { 
     case IDLE: 
      stateLayout = R.layout.peer_idle; 
      break; 
     case REQUEST_MADE: 
      stateLayout = R.layout.peer_request_made; 
      break; 
     ... 
     default: 
      throw new AssertionError(); 
    } 

    linearLayout.removeViewAt(2); 
    View stateView = inflater.inflate(stateLayout, linearLayout, false); 
    linearLayout.addView(stateView);