Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Java(不是通过XML)实现微调器的右对齐_Java_Android - Fatal编程技术网

通过Java(不是通过XML)实现微调器的右对齐

通过Java(不是通过XML)实现微调器的右对齐,java,android,Java,Android,微调器需要在屏幕上右对齐 我试着用重力和其他东西,但都没用 我还尝试了大量搜索这种正确的对齐方式,everywhere解决方案是以XML格式提供的,但不是以Java格式提供的。 有人能帮忙吗:) 代码 final LinearLayout lm=(LinearLayout)findViewById(R.id.linearLayout1); LinearLayout ll=新的LinearLayout(本); ll.设置方向(水平线性布局); 最终微调器微调器=新微调器(此); spinner.

微调器需要在屏幕上右对齐

我试着用重力和其他东西,但都没用

我还尝试了大量搜索这种正确的对齐方式,everywhere解决方案是以XML格式提供的,但不是以Java格式提供的。 有人能帮忙吗:)

代码

final LinearLayout lm=(LinearLayout)findViewById(R.id.linearLayout1);
LinearLayout ll=新的LinearLayout(本);
ll.设置方向(水平线性布局);
最终微调器微调器=新微调器(此);
spinner.setOnItemSelectedListener(此);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,类别);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
spinner.setAdapter(dataAdapter);
spinner.setEnabled(false);
ll.addView(微调器);
lm.addView(ll);
阿比尔:现在它展示了这个


您必须在此处使用自定义视图来对齐微调器值。创建一个类似answer创建的CustomView,并将android:gravity添加到文本视图中,如右图所示

使用将CustomView设置为适配器

adapter.setDropDownViewResource(android.R.layout.your_custom_created_view);

我认为这应该解决你的问题:

    final LinearLayout lm = (LinearLayout) findViewById(R.id.linearLayout1);
    LinearLayout ll = new LinearLayout(this);
    ll.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    ll.setGravity(Gravity.RIGHT);
    ll.setOrientation(LinearLayout.HORIZONTAL);

    final Spinner spinner = new Spinner(this);
    spinner.setOnItemSelectedListener(this);
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, categories);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);
    spinner.setEnabled(false);
    ll.addView(spinner);
    lm.addView(ll);    
final LinearLayout lm=(LinearLayout)findViewById(R.id.linearLayout1);
LinearLayout ll=新的LinearLayout(本);
ll.setLayoutParams(新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.WRAP_内容));
ll.setGravity(Gravity.RIGHT);
ll.设置方向(水平线性布局);
最终微调器微调器=新微调器(此);
spinner.setOnItemSelectedListener(此);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,类别);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
spinner.setAdapter(dataAdapter);
spinner.setEnabled(false);
ll.addView(微调器);
lm.addView(ll);

您应该设置动态线性布局的宽度和高度。然后把它的重力调到右边。然后您的微调器将在视图的右侧对齐。

我希望这对您有用。它有点复杂,因为它有多个嵌套视图。但这会解决问题,我想你会得到你想要的观点

    final LinearLayout lm = (LinearLayout) findViewById(R.id.linearLayout1);
    LinearLayout ll = new LinearLayout(this);
    ll.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    ll.setWeightSum(1);
    ll.setOrientation(LinearLayout.HORIZONTAL);


    final CheckBox box = new CheckBox(this);
    box.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, .1f));

    final TextView tv = new TextView(this);
    tv.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, .3f));
    tv.setText("STD_MOBILE");

    LinearLayout l2 = new LinearLayout(this);
    l2.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, .6f));
    l2.setGravity(Gravity.RIGHT);
    l2.setOrientation(LinearLayout.HORIZONTAL);


    final Spinner spinner = new Spinner(this);
    spinner.setOnItemSelectedListener(this);
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, categories);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);
    spinner.setEnabled(false);


    l2.addView(spinner);

    ll.addView(box);
    ll.addView(tv);
    ll.addView(l2);
    lm.addView(ll);    
final LinearLayout lm=(LinearLayout)findViewById(R.id.linearLayout1);
LinearLayout ll=新的LinearLayout(本);
ll.setLayoutParams(新的LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.WRAP_内容));
ll.设定权重总和(1);
ll.设置方向(水平线性布局);
最终复选框=新复选框(此复选框);
box.setLayoutParams(新的LinearLayout.LayoutParams(0,ViewGroup.LayoutParams.WRAP_内容,.1f));
最终文本视图电视=新文本视图(本);
tv.setLayoutParams(新的LinearLayout.LayoutParams(0,ViewGroup.LayoutParams.WRAP_内容,.3f));
tv.setText(“STD_MOBILE”);
LinearLayout l2=新的LinearLayout(本);
l2.setLayoutParams(新的LinearLayout.LayoutParams(0,ViewGroup.LayoutParams.WRAP_内容,.6f));
l2.设置重力(重力。右侧);
l2.设置方向(线性布局。水平);
最终微调器微调器=新微调器(此);
spinner.setOnItemSelectedListener(此);
ArrayAdapter dataAdapter=新的ArrayAdapter(这是android.R.layout.simple\u微调器\u项,类别);
dataAdapter.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉项);
spinner.setAdapter(dataAdapter);
spinner.setEnabled(false);
l2.addView(微调器);
ll.addView(框);
ll.addView(电视);;
ll.addView(l2);
lm.addView(ll);

我使用了权重来指定您的ChildView的确切空间。然后将微调器父布局的重力向右调整。

谢谢您的回复。:)但现在一切都会好起来的。我想,因为我们为线性布局设置了重力,它已经改变了一切。请找到新的图像@top。我只需要最右边的微调器。我以为你们只有一个孩子作为微调器。我有3…1个复选框,1个文本视图和1个微调器。我只想要微调器右对齐。你能帮忙吗?:)所以您需要一个复选框,然后是一个文本视图,然后是一个微调器。现在我的问题是,您希望微调器紧跟在TextView之后还是在视图的末尾对齐?它的工作方式是Abir。感谢您付出的所有努力。:)我很高兴这有帮助:)
    final LinearLayout lm = (LinearLayout) findViewById(R.id.linearLayout1);
    LinearLayout ll = new LinearLayout(this);
    ll.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
    ll.setWeightSum(1);
    ll.setOrientation(LinearLayout.HORIZONTAL);


    final CheckBox box = new CheckBox(this);
    box.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, .1f));

    final TextView tv = new TextView(this);
    tv.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, .3f));
    tv.setText("STD_MOBILE");

    LinearLayout l2 = new LinearLayout(this);
    l2.setLayoutParams(new LinearLayout.LayoutParams(0, ViewGroup.LayoutParams.WRAP_CONTENT, .6f));
    l2.setGravity(Gravity.RIGHT);
    l2.setOrientation(LinearLayout.HORIZONTAL);


    final Spinner spinner = new Spinner(this);
    spinner.setOnItemSelectedListener(this);
    ArrayAdapter<String> dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, categories);
    dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(dataAdapter);
    spinner.setEnabled(false);


    l2.addView(spinner);

    ll.addView(box);
    ll.addView(tv);
    ll.addView(l2);
    lm.addView(ll);