相关疑难解决方法(0)

如何以编程方式在RelativeLayout中布局视图?

我试图以编程方式实现以下(而不是通过XML声明):

<RelativeLayout...>
   <TextView ...
      android:id="@+id/label1" />
   <TextView ...
      android:id="@+id/label2"
      android:layout_below: "@id/label1" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

换句话说,如何使第二个TextView出现在第一个下面,但我想在代码中执行:

RelativeLayout layout = new RelativeLayout(this);
TextView label1 = new TextView(this);
TextView label2 = new TextView(this);
...
layout.addView(label1);
layout.addView(label2);
setContentView(layout);
Run Code Online (Sandbox Code Playgroud)

更新:

谢谢,TreeUK.我理解大方向,但它仍然不起作用 - "B"重叠"A".我究竟做错了什么?

RelativeLayout layout = new RelativeLayout(this);
TextView tv1 = new TextView(this);
tv1.setText("A");

TextView tv2 = new TextView(this);
tv2.setText("B");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.FILL_PARENT);
lp.addRule(RelativeLayout.RIGHT_OF, tv1.getId());

layout.addView(tv1);        
layout.addView(tv2, lp);
Run Code Online (Sandbox Code Playgroud)

android android-layout android-view android-relativelayout

231
推荐指数
5
解决办法
19万
查看次数

具有半透明StatusBar的全屏DialogFragment

我有一个DialogFragment,我想全屏显示.但我仍然想要一个StatusBar,以及底部的硬件按钮.我还想设置StatusBar的背景颜色(对于Lollipop).

我的问题是,如果我在DialogFragment中设置以下标志:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);   
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Run Code Online (Sandbox Code Playgroud)

StatusBar和Hardware键盘都变得半透明,DialogFragment在这些后面延伸.

这是代码,它已经大大减少,变得可读:

public class CardDetailsDialog extends DialogFragment {

Setup parameters...

public static CardDetailsDialog newInstance(final long cardId, final long projectId){
    CardDetailsDialog frag = new CardDetailsDialog();
    frag.setStyle(DialogFragment.STYLE_NORMAL, R.style.CardDetailsDialogStyle);
    return frag;
}

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    if(getDialog() != null) {
        getDialog().getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogSlideAnimation;
        getDialog().getWindow().setLayout(LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT);
        getDialog().getWindow().setStatusBarColor(Color.RED);
    }
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View view = inflater.inflate(R.layout.card_details, …
Run Code Online (Sandbox Code Playgroud)

android statusbar android-dialogfragment android-5.0-lollipop

17
推荐指数
4
解决办法
1万
查看次数

使用Java代码创建相对布局时出错

我是Android开发新手,并尝试使用Java代码创建RelativeLayout.下面是我的MainActivty.java

package com.rt.droid.rellayoutjava;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.RelativeLayout.LayoutParams;

public class MainActivity extends Activity {
RelativeLayout r;
public static LayoutParams msgDim;
EditText userNameVal, passwordVal;
TextView message, userName, password;
Button login;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    init();
    createMessage();
    r.addView(message,msgDim);
    setContentView(r);
}

public void init() {
    r = new RelativeLayout(this);
    LayoutParams dimensions = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    r.setLayoutParams(dimensions);
    userNameVal = new EditText(this);
    passwordVal = new EditText(this);
    message=new TextView(this);
    userName = new …
Run Code Online (Sandbox Code Playgroud)

java android

3
推荐指数
1
解决办法
6041
查看次数

我们如何在布局中的动态位置添加按钮

我们如何在布局或使用画布的动态位置添加添加按钮,而不是在表格布局中有人可以帮助我.

android

1
推荐指数
1
解决办法
4952
查看次数