如何以及在何处通知自定义视图中的按钮

时间:2015-09-01 01:29:40

标签: android android-layout

我目前的用例是在自定义视图中为3个以上的按钮充气。我想构建一个自定义视图,它取宽度并破译如何显示3+按钮。如果按钮在一个水平排列中不适合其上的文本,则按钮将一个接一个地垂直放置。所以要努力,我知道我需要通过onMeasure传递。我应该在onMeasure上为每个按钮充气还是应该在构造函数CustomButtonBarView之后给它充气?

所以我想要遵循的架构有点像

public CustomButtonBarView extends ViewGroup
{
   public CustomButtonBarView( Context context )
   {
       //initialize variables
   } 

   public void onMeasure()
   {
         // inflate all the buttons more than 3 
         // measure each button width, then see if it can be fitted in one
         // line and then move forward
   }
}

所以我的问题是我应该在哪里给那些3+按钮充气?我不能把它们放在XML中,因为确切的数字是不同的

<CustomButtonBarView>
  <Button/>
  <Button/> <!-- NO idea how many -->
</CustomButtonBarView>

谢谢,任何帮助或指示,或者即使您觉得我的方向不正确,也请随时告诉我。我愿意接受改变。

1 个答案:

答案 0 :(得分:0)

将按钮放在网格视图中可能会有所帮助。在那里你可以强制按钮跟随网格。操作系统将处理按钮的宽度,因此您可能需要测量它们。