我需要通过 Java 代码为我的 Android 应用程序实现 Dialog,所以我不能使用 XML。
我有根LinearLayout
,我在其中实现范围搜索栏,然后我LinearLayout
在根布局下有另一个,水平方向,我想在同一行中添加两个按钮。所以我需要将重量设置为 1,将宽度设置为 ,将FILL_PARENT
高度设置为WRAP_CONTENT
。
我如何使用 Java 代码做到这一点?
我需要通过 Java 代码为我的 Android 应用程序实现 Dialog,所以我不能使用 XML。
我有根LinearLayout
,我在其中实现范围搜索栏,然后我LinearLayout
在根布局下有另一个,水平方向,我想在同一行中添加两个按钮。所以我需要将重量设置为 1,将宽度设置为 ,将FILL_PARENT
高度设置为WRAP_CONTENT
。
我如何使用 Java 代码做到这一点?
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
p.weight = 1;
rangeSeekBar.setLayoutParams(p);
我不确定您要在哪个视图上设置布局参数。我只是假设 rangeSeekbar 来展示一个例子。如果需要,请更改。
使用布局参数时,请始终使用根的参数类型。
前任。如果你有一个View
你想在一个RelativeLayout
使用中应用参数RelativeLayout.LayoutParams
..
您可以将其作为 LinearLayout.LayoutParams 构造函数的一部分传递:您的意思是 wrap_content 吗?
LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT, 1.0f);
1.0f 是重量
不使用 XML 是必需的吗?如果没有,您总是可以在 XML 中构建您的布局,然后LayoutInflater
在运行时使用 a 来构建您的视图层次结构并将其传递给setView()
您的对话框。
例如:
LayoutInflater inflater = LayoutInflater.from(getActivity());
View v = inflater.inflate(R.layout.my_dialog_layout, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setView(v);
更简单的方法:
public static void setLayoutWeight(View view , float weight)
{
((LinearLayout.LayoutParams) view.getLayoutParams()).weight = weight;
view.requestLayout();
}