相关疑难解决方法(0)

片段内的片段

我需要有关片段内部片段的帮助,实际上我在按下后退按钮时遇到问题.应用主屏幕具有按钮和按下每个按钮上考虑到与新的片段替换(和该片段包含另一个片段内),动态地添加/更换片段工作正常,通过按压按钮1片段代替,按压按钮时发生同样的情况,但是,如果我按按钮再次出现异常:

"Duplicate id 0x7f05000a, tag null, or parent id 0x7f050009 with
another fragment for com........ fragmentname"
Run Code Online (Sandbox Code Playgroud)

意味着片段或内部片段已经添加,我试图再次添加它们,任何人都知道如何使用片段内部片段和来回移动没有任何问题,感谢支持.

MainActivity,其中片段是动态添加和替换的.

public class FragmentInsideFragmentTestActivity extends Activity {

    private Button button1;
    private Button button2;
    private Button button3;
    private Button button4;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        button1 =(Button) this.findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
           public void onClick(View view) {
               onButtonClick(view);
            }
        });

        button2 =(Button) this.findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                onButtonClick(view);
            } …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-nested-fragment

123
推荐指数
7
解决办法
20万
查看次数

需要复杂的Android UI设计指南(片段)

我正在开发针对平板电脑和谷歌电视的应用程序.它就像许多标准的Google TV应用程序一样,具有LeftNavBar和顶级搜索栏,这对所有应用程序屏幕都是通用的.它看起来像下图:

主屏幕 在此输入图像描述

所有其他屏幕的RED区域将不同.它可能包含以下屏幕模型等数据:

活动一加载到主容器中 在此输入图像描述

活动二加载到主容器中 在此输入图像描述

因此,您可以看到主区域中可以加载完全不同的部分.

当在屏幕2中选择任何列表项时(例如在片段列表中),可以将屏幕3作为详细部分加载,或者可以在选择选项卡(将出现在LeftNavBar中)时加载它.

这是我试图实现它的方式.

步骤1.我使用以下XML创建了一个主Activity:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:background="#9ccc" >

        <!-- Top Bar -->

    </LinearLayout>

    <FrameLayout
        android:id="@+id/mainContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <!-- main Red Container that will load other Activities -->

    </FrameLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

mainContainer是我想要加载活动的RED容器.LeftNavBar将作为All的父级添加到此Activity中.

步骤2我创建ActivityOne&ActivityTwo与它们两个分别与三个片段(如在上面第二和第三图像示出).

*步骤3我正在尝试加载ActivityOne主页面的mainContainer FrameLayout ......但是我无法添加它.

我试图通过添加ActivityOnemainContainer如下:

View v = (new ActivityOne()).getWindow().getDecorView();
FrameLayout mainContainer = (FrameLayout) findViewById(R.id.mainContainer);
mainContainer.addView(v); …
Run Code Online (Sandbox Code Playgroud)

android android-layout google-tv android-fragments

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

嵌套片段有什么替代方法吗?

我已经读过应该避免嵌套碎片(例如这里),但我看不到如何做以下事情:

我正在android:minSdkVersion="12"使用以下UI处理选项卡应用程序():

在此输入图像描述

搜索栏始终在此处,用户可以浏览多个菜单选项("主页","图库"...).我的想法是使用BaseActivity,其布局包含搜索栏和FrameLayout,我将在其中加载与用户导航选项对应的Fragment.

我的问题是在'Home'片段中我有几个标签,我想以相同的方式实现,即使用包含标签栏和FrameLayout的布局,我将在其中加载相应的片段,这导致嵌套的片段...

我知道我可以使用多个活动而不是BaseActivity,并在每个布局中包含搜索栏,但每次用户更改活动时它都会显示和消失...

编辑

我还需要一个固定的页脚,所以我不能使用CommonsWare在他的回答中提出的操作栏.

有人可以帮忙吗?

android fragment

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

在片段里面的Viewpageindicator

使用SherlockActionBar,我创建了一个很好的界面.在横向模式中,您会看到listfragment和"detailsfragment".

现在我想在详细信息框架中添加一个viewpageindicator(https://github.com/JakeWharton/Android-ViewPagerIndicator),所以我看起来像这样:

--------------------------|
|_1___|TAB1 | TAB2 | ETC  |
|_2___|-------------------|
|_3___|Example: content   |
|_4___| TAB1 of listitem 1| 
|_5___|___________________|
Run Code Online (Sandbox Code Playgroud)

我希望这很清楚.基本上我会在片段内部使用FragmentManager/TabPageIndicator.

我有可能吗?我想不出来.. :(

谢谢!

android fragment android-fragments actionbarsherlock

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

将片段添加到片段(嵌套片段)中

我想将youtube片段动态添加到我现有的片段中。我使用的代码如下:

        // setting the Youtube Player Dynamically
private int setYoutubePlayer(String desc, View view, int prevID,
        Bundle input) {

    if (desc.indexOf("=") != -1) {
        desc = desc.substring(desc.indexOf("=") + "=".length());
    } else {
        return prevID;
    }

    final String url = desc;

    LinearLayout videoLayout = new LinearLayout(view.getContext());
    videoLayout.setOrientation(LinearLayout.VERTICAL);
    prevID++;
    videoLayout.setId(prevID);

    FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager
            .beginTransaction();

    fragment.setVideoId(url);
    LinearLayout itemLayout = (LinearLayout) view.findViewById(R.id.items);
    itemLayout.addView(videoLayout);

    fragmentTransaction.add(itemLayout.getId(), fragment,
            "youtube fargment " + prevID);

    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();

    return prevID;
}
Run Code Online (Sandbox Code Playgroud)

我需要将YouTube片段放入适当的片段中。当我检查何时总是加载新片段时(在片段之间滑动时),新的内部片段需要是第一个加载的片段。

任何帮助都会很高兴地被接受。

求助:谢谢科比,你是对的。我不得不替换“ getActivity()。getSupportFragmentManager();” 与“ …

android youtube-api android-fragments android-viewpager android-nested-fragment

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

使用兼容性时从活动中获取FragmentTransaction的问题

所以我正在开发一个我希望在传统Android设备上运行的项目,所以我使用的是兼容性库.我使用的是类似于NewsReader的接口,只是代替Activity中的两个片段,它们嵌入在另一个嵌入ViewPagger的片段中.

为简单起见,我们将使用这些术语......

Activity -> ViewPager -> ContainerFragment->Fragment1
                                          ->Fragment2
Run Code Online (Sandbox Code Playgroud)

在ContainerFragment中我试图用片段2替换片段1,如果它是一个电话,所以我在ContainerFragment中尝试了以下代码...

import android.support.v4.app.FragmentTransaction;    
...
public void onBarSelected(Integer index) {
    selectedBarIndex = index;
    if (isDualPane) {
        // display it on the article fragment
        mBarEditFragment.displayBar(index);
    }
    else {
        // use separate activity
        FragmentActivity activity = (FragmentActivity)getActivity();
        FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
        ft.replace(R.id.bar_container, new BarEditFragment(),R.id.bar_edit);
    }

}
Run Code Online (Sandbox Code Playgroud)

但是我得到以下编译错误

Type mismatch: cannot convert from android.app.FragmentTransaction 
 to android.support.v4.app.FragmentTransaction
Run Code Online (Sandbox Code Playgroud)

我仔细检查了一下,活动确实扩展了兼容性FragmentActivity.

UPDATE

试图改为......

得到....

MainActivity activity = (MainActivity)getActivity();
Object test = activity.getFragmentManager().beginTransaction();
FragmentTransaction ft = (FragmentTransaction)test;
ft.replace(R.id.bar_container, new BarEditFragment());
Run Code Online (Sandbox Code Playgroud)

我得到了...... …

java android fragment

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