【问题标题】:Adding Multiple Horizontal Views In A Relative Layout在相对布局中添加多个水平视图
【发布时间】:2015-12-12 12:55:53
【问题描述】:

我需要的是

第 1 节

水平滚动视图

第 2 节

水平滚动视图

它可以是动态的节数 所以我需要动态生成它们 但如果我使用这段代码 只有最后一个水平滚动视图有效

休息其他不工作

我的代码;

public class HomeFragment extends Fragment 
    {
      View rootView;
      int i = 0;

    int j =0;
    public HomeFragment(){

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

         rootView = inflater.inflate(R.layout.fragment_home, container, false);
        RelativeLayout rl=(RelativeLayout)rootView.findViewById(R.id.relativelay);
   HorizontalScrollView sv = new HorizontalScrollView(getActivity().getApplicationContext()) ;

       sv =  hsview(100);
        rl.addView(sv);
    sv = hsview(300);
        rl.addView(sv);

              return rootView;

    }


    public HorizontalScrollView hsview(int k)
{



        HorizontalScrollView sv = new HorizontalScrollView(getActivity().getBaseContext());
      sv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        LinearLayout ll = new LinearLayout(getActivity().getApplicationContext());
        LinearLayout.LayoutParams margin = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

        margin.setMargins(0,k,0,0);
       ll.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        ll.setOrientation(LinearLayout.HORIZONTAL);

        for (i = k; i < 310; i++) {
            Button b = new Button(getActivity().getApplicationContext());
            b.setText("Button " + i);
          //  b.setLayoutParams(margin);
            ll.addView(b);
        }

        sv.addView(ll);
        return sv;


       }
       }       

【问题讨论】:

    标签: java android android-layout import widget


    【解决方案1】:

    这可能是因为您使用 MATCH_PARENT 参数作为 Horizo​​ntalScrollView 的高度。只需将 MATCH_PARENT 替换为 WRAP_CONTENT 即可,如下所示

    sv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    

    【讨论】:

    • 试试这个 rl.addView(hsview(100)); rl.addView(hsview(300)); rl.addView(hsview(100));
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    相关资源
    最近更新 更多