Articles of android fragments

是否可以使用Butterknife在android中的espresso Test clases中注入视图?

是否可以使用Butterknife注入测试类的视图? 视图被注入到由MainActivity类创建和提交的片段中。 这是我的测试类的代码: public class MainActivityTest extends ActivityInstrumentationTestCase2 { private MainActivity mMainActivity; private Button learnButton; private Button teachButton; @SuppressWarnings( “deprecation” ) public MainActivityTest() { super(“com.example.application.app”, MainActivity.class); } protected void setUp() throws Exception { super.setUp(); mMainActivity = getActivity(); learnButton = (Button) mMainActivity.findViewById(R.id.buttonLearn); teachButton = (Button) mMainActivity.findViewById(R.id.buttonTeach); } 但是我使用Butterknife在我的片段中注入视图: public class ChooseActionFragment extends Fragment { @InjectView(R.id.buttonTeach) Button […]

FragmentActivity选项卡屏幕停电

我正在使用android示例FragmentTabs 。 比如,有4个标签(A,B,C,D)。 我使用此代码将标签片段(A)替换为另一个(E) FragmentTransaction transaction = getFragmentManager() .beginTransaction(); transaction.replace(R.id.realtabcontent, newFragment); transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); transaction.addToBackStack(null); // Commit the transaction transaction.commit(); 在另一个标签C中,当我按回按钮时,标签(A)屏幕变为黑色。

Android中的动态片段

是否可以动态创建片段以生成包含多个片段的布局,就像在网格视图中一样。 目前,我只能加载多个片段,只要我的布局有固定片段的数量。

替换Viewpager中的片段/选项卡

我目前正在尝试为我未来的应用程序制作框架。 我非常喜欢ActionBar和ViewPager,但错过了一个function。 我需要在运行时替换Fragment / Tab。 使用官方示例 ,我希望看到类似于replaceTab()的内容,但无论我做什么,Fragment本身都不会更新。

为什么在backstack中零碎片

我的简单布局只有一个片段占位符: 我首先在这个占位符中添加第一个片段 : fragmentTransaction.add(R.id.fragment_placeholder, firstFragment, “first”); //I did not put to backstack 我有一个第二个片段 ,它取代上面的片段并将其放回到堆栈 : FragmentManager fragMgr = getSupportFragmentManager(); FragmentTransaction fragTrans = fragMgr.beginTransaction(); //initialize an fragment instance Fragment secondFragment = initSecondFragment(); //replace with the fragment fragTrans.replace(R.id.fragment_placeholder, secondFragment, “second”); //Add transaction to back stack fragTrans.addToBackStack(null); //commit the transaction fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); fragTrans.commit(); //The following log returns me 0 […]

当方向改变时,不加载不同的片段(android)

我创建了一个测试项目 ,它有两个不同的片段,可以在同一个活动中显示。 一个片段用于横向,另一个用于纵向。 # My unique activity public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } # First Fragment public class LandscapeFragment extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { TextView v = (TextView) inflater.inflate(R.layout.fragment, container, false); v.setText(“LANDSCAPE”); return v; } } # Other […]

好奇心向下/向上滑动animation和片段根据post日期填充

**简而言之:我想要gif中显示的滚动animation,当用户向下/向上滑动它直接进入项目时,它就像一个animationanimation。 对于Date片段,我猜它是一个horizontal Recyclerview 。 我看起来作为一个答案是,滚动animation的代码示例,以及一种做日期事物的方法,我可以根据日期自动填充片段。 之前我曾经问过这个问题并且问题不是很清楚。 这个应用程序包括向下/向上滑动样式。 当你向下或向上滑动时,应用程序不会让你像普通的Scrollview一样滑动,而是从第一次触摸(例如)它导航到下一篇文章。 重要说明是完整尺寸的post/项目(项目布局match_parent ?)。 此外,每个post都有一个日期,并且该应用程序包含一个日历,当您向左或向右滑动时,您导航到日期并根据您获得post的日期。 我想要的,提示或方法来做这样的事情。 我想提供一个代码,但我试图在脑海中画出一条路,但却无法以合乎逻辑的方式思考。 对于片段,我猜他们正在考虑now日期和post中最早的日期,并且基于他们制作(循环)片段,每个片段必须根据日期加载post(查询到API它给日期作为参数?)。 无论如何,这是一个应用程序的GIF,它解释了我在说什么。 我将为这个问题设置一个赏金,因为我渴望在我的应用程序中实现这样的function。 https://gfycat.com/JadedMenacingAmericanalligator

在单个活动中交换片段?

在平板电脑上,我们有两个彼此相邻的片段(相同数据的两个不同视图)。 在移动设备上,我们只需按一下按钮即可在这两个片段之间切换。 移动布局看起来像这样: 在activity的swapFragments(View)方法中,我试图使用FragmentManager将fragA替换为fragB : FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.container, new FragB()); fragmentTransaction.commit(); …但我总fragA的透明部分看到fragA ,让我相信它只是把fragB放在fragB之上,而不是替换它。 我开始在事务中使用hide(Fragment)和类似方法的路径,但这看起来不是正确的方法。 有关如何以正确方式交换这些碎片的任何提示? 编辑 :我看到了这个问题的答案。 这让我感到困惑,因为我需要为平板电脑和手机指定不同的布局。 如果我必须以编程方式添加片段,我如何避免特定于活动中每个布局的代码(即 if(TABLET) { addFragmentA(); addFragmentB(); } else { addFragmentA(); }

即使明确设置了库的样式属性也没有值

目前的答案没有帮助,这个问题没有答案 我创建了一个带有自定义视图的库,它在创建时会扩展布局。 布局中的视图使用style=”?attr/labelStyle”或任何其他属性设置style=”?attr/labelStyle” 。 该属性被声明为库的attrs.xml : 我在库的styles.xml为此属性设置了一个默认值: @style/LabelStyle ?android:attr/textColorPrimary … 最后在库的themes.xml : @style/MyViewStyle 现在这是库的默认样式,但它在主项目styles.xml被覆盖 @style/MyViewStyleCustom @color/gray … 自定义视图代码: public MyView(Context context) { this(context, null, R.attr.myViewStyle, 0); } public MyView(Context context, @Nullable AttributeSet attrs) { this(context, attrs, R.attr.myViewStyle, 0); } public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { this(context, attrs, defStyleAttr, 0); } public MyView(Context […]

executePendingTransactions()总是必要的吗?

这更像是一个理论问题。 我有一种情况,我的应用程序崩溃与片段交换与executePendingTransactions()调用,并没有它工作正常。 我的问题是,如果我不调用executePendingTransactions() ,一般会出现什么问题? 据我所知,没有这种方法, Fragment交换可能不会立即发生,虽然我从未经历过这种情况。