【发布时间】:2015-03-18 10:05:06
【问题描述】:
我试图在这样的 ScrollView 中获得 LinearLayout:
绿色空间应该是 wrap_content,红色空间应该占据剩余空间。
但这是我的结果:
这是我的代码:
foreach(Ele el : elements) {}
LinearLayout layout = new LinearLayout(getActivity());
LayoutParams layout_parm = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
layout.setOrientation(LinearLayout.HORIZONTAL);
layout.setLayoutParams(layout_parm);
TextView tv = new TextView(getActivity());
tv.setLayoutParams( new LayoutParams(0, LayoutParams.WRAP_CONTENT, 1) );
tv.setBackgroundColor(getActivity().getResources().getColor((R.color.red)));
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
tv.setText("Name...");
tv.setPadding(0, 0, 0, getDP(5));
layout.addView(tv);
TextView iView = new TextView(getActivity());
iView.setText("OTO");
iView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
iView.setBackgroundColor(getActivity().getResources().getColor((R.color.green)));
iView.setLayoutParams( new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0) );
layout.addView(iView);
frg_layout.addView(layout);
}
我很困惑!也许你可以帮我找出我的失败... 谢谢!
父视图组:
<LinearLayout
android:id="@+id/frg_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:gravity="top"
android:orientation="vertical" />
【问题讨论】:
-
从 LinearLayout.HORIZONTAL 切换到 VERTICAL 并为 TextView 的布局添加权重。就是这样;)
-
或者更好更简单,只用线性布局和你的两个元素创建一个布局文件,使用inflater加载这个资源。然后您可以使用 AndroidStudio 中的 GUI 设计器。
-
但是 VERTICAL 是从上到下的意思,我希望 HORIZONTAL 从左到右,或者这不是事实吗?我尝试了一下,我得到了相同的结果,行之间没有空格......
-
您要将 LinearLayouts 添加到 (frg_layout) 中的 ViewGroup 是什么?最好看看它是什么类型,它是如何定义的,它的布局参数是什么等等。
-
什么时候在android布局上创建设计使用xml非常简单的设计方式
标签: android scrollview android-linearlayout