小编raj*_*kar的帖子

如何在Android中向窗口管理器添加多个视图

Android截图

我正在开发像Facebook Chat Heads这样的应用程序,知道如何向窗口管理器添加单个视图.

如何向窗口管理器添加多个视图?我尝试过框架布局和相对布局,但是如果我使用相对布局,如何将聊天头从一个地方移动到另一个地方?

为了添加多个视图,我使用下面的代码:

chatHead = new ImageView(this);
    chatHead.setImageResource(R.drawable.ic_launcher);
    TextView t = new TextView(this);
    t.setText("Blessan Mathew");
    t.setBackgroundColor(Color.CYAN);
    params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    childLayout.addView(t, params1);

    params1 = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    childLayout.addView(chatHead, params1);
    fr.addView(childLayout);

    params = new WindowManager.LayoutParams(
        WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.WRAP_CONTENT,
        WindowManager.LayoutParams.TYPE_PHONE,
        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
        PixelFormat.TRANSLUCENT
    );
    params.gravity = Gravity.TOP | Gravity.LEFT;
    params.x = 0;
    params.y = 100;
    windowManager.addView(fr, params);
Run Code Online (Sandbox Code Playgroud)

如何拖动聊天头以删除其视图?

android android-view

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

碎片在后退按钮上重叠

我创建了3个片段(FragmentA,FragmentB,FragmentC)和一个MainActivity.每个片段中都有一个按钮,它将自己替换为FragmentC的下一个片段.

我正在替换FragmentA(with)FragmentB(然后是)FragmentC.

从FragmentA到FragmentB的事务使用以下函数

    @Override
    public void fragmentreplacewithbackstack(Fragment fragment, String tag) {

        FragmentManager fragmentManager=getSupportFragmentManager();
        FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.contner,fragment , tag);
        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.commit();   
//      fragmentManager.executePendingTransactions();

    }
Run Code Online (Sandbox Code Playgroud)

从FragmentB到FragmentC的事务使用以下函数

public void fragmentreplace(Fragment fragment,String tag){
        FragmentManager fragmentManager=getSupportFragmentManager();
        FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
        fragmentTransaction.replace(R.id.contner,fragment , tag);
        fragmentTransaction.commit();   

    }
Run Code Online (Sandbox Code Playgroud)

问题是当我从FragmentC按下按钮时,FragmentC和FragmentA相互重叠.

如下屏幕

android overlap overlapping android-fragments back-stack

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