我正在处理碎片并遇到两件事情Activity,FragmentActivity并且已经使用了好几次.我想知道这两者之间有什么区别,因为当我改变Activity时FragmentActivity,它对应用程序没有任何影响.
android android-fragments android-fragmentactivity android-support-library
我正在使用支持包v4的Google API 8(Android 2.2).
它不会给出任何错误或动画.
交易:
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.content, myFragment);
transaction.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
动画:
slide_in_left.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="700"
android:fromXDelta="-100%"
android:toXDelta="0%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
slide_out_right.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="700"
android:fromXDelta="0%"
android:toXDelta="100%" >
</translate>
</set>
Run Code Online (Sandbox Code Playgroud)
有谁知道这里发生了什么?
嗨,我正在开发一个Android应用程序.在我的应用程序中,我正在使用Sherlock动作.我在动作栏中定义了几个菜单项,如下所示
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/card_menu"
android:actionLayout="@layout/action_button"
android:showAsAction="always"
android:title="cards">
<menu>
<item
android:id="@+id/C1"
android:title="C1"/>
<item
android:id="@+id/C2"
android:title="c2"/>
<item
android:id="@+id/C3"
android:title="C3"/>
</menu>
</item>
<item
android:id="@+id/notification"
android:actionLayout="@layout/notification_icon"
android:icon="@drawable/notification"
android:showAsAction="always"
android:title="Notifications"/>
<item
android:id="@+id/filter"
android:icon="@drawable/filter"
android:showAsAction="always"
android:title="Filter"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
和我的action_button看起来像:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/menu_img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/spinner_ab_focused_maroon"/>
<TextView
android:id="@+id/menu_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imageView0"
android:text="C1"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
现在一切都显示出来但我的问题是当我点击card_menu item我定义子菜单的位置并定义动作布局时.它没有显示那些子菜单.我的其他菜单项工作正常.只有当我为包含子菜单的项目定义动作布局时,我才能显示子菜单.如果我删除动作布局,它工作正常.
我知道如果我们为item定义动作布局,那么我们必须手动处理click侦听器.我是按照以下方式做到的
final MenuItem item = menu.findItem(R.id.card_menu);
item.getActionView().setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(item);
Toast.makeText(getActivity(), "click on menu", Toast.LENGTH_SHORT).show();
}
});
Run Code Online (Sandbox Code Playgroud)
我能够处理该项目的单击事件,但无法显示下拉子菜单项. …
我试图设置我的工具栏标题:
public class StatisticsPage extends Fragment {
public StatisticsPage(){}
private FragmentTabHost mTabHost;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.statistics_pagelayout, container, false);
Spinner spinner = (Spinner) rootView.findViewById(R.id.statsSpin);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(),
R.array.statspage, R.layout.dropdown_item);
spinner.setAdapter(adapter);
getSupportActionBar().setTitle("My title");
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) {
switch (position) {
case 0:
break;
case 1:
// do whatever stuff you wanna do here
Fragment Fragment_one;
FragmentManager man= getActivity().getSupportFragmentManager();
FragmentTransaction tran …Run Code Online (Sandbox Code Playgroud) 所有Android设备都有"选项"和"后退"按钮吗?或者我的设计应该有"后退"和"选项"按钮,以使其更加通用?
我正在使用这个模板https://github.com/kanytu/android-material-drawer-template只是为了尝试material design所以我实现了一些片段,有些网页视图有些没有.
我的问题是在片段之间切换时我可以看到它们被成功添加到后台堆栈中
getFragmentManager().beginTransaction().replace(R.id.container, new FAQ()).addToBackStack("FAQ").commit();
Run Code Online (Sandbox Code Playgroud)
但是当我按下后退按钮时,它就会关闭应用程序.
当我改为使用Activity而不是ActionBarActivity导航工作正常,但我失去了一些其他功能.
后退按钮上有一个覆盖
@Override
public void onBackPressed() {
if (mNavigationDrawerFragment.isDrawerOpen())
mNavigationDrawerFragment.closeDrawer();
else
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
但即使被删除它仍然会发生.我认为这个问题存在于某个方面super.onBackPressed
有什么理由ActionBarActivity可以打破后退按钮吗?
android android-fragments android-actionbaractivity android-5.0-lollipop
在docker之上运行的容器和在JVM之上运行的自包含Java程序之间的最大区别是什么?
我假设两者都直接在没有底层可视化的物理Linux服务器上运行.
我有一个webview,我在登录屏幕上手动显示键盘并专注于输入字段.
领域:
<input type="password" maxlength="4" pattern="[0-9]*" id="pin">
Run Code Online (Sandbox Code Playgroud)
聚焦和显示键盘:
webView.requestFocus(View.FOCUS_DOWN);
webView.loadUrl("javascript:document.getElementById('pin').focus();");
InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(webView, InputMethodManager.SHOW_IMPLICIT);
Run Code Online (Sandbox Code Playgroud)
登录屏幕仅包含PIN样式代码字段,用户将在其中输入4位数字.问题是,默认情况下,它显示常规的alpha键盘,我希望它显示数字键盘.我已经看到很多使用EditText属性来控制键盘类型的例子
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
EditText.setInputType(InputType.TYPE_CLASS_PHONE); [select Input type as according to ur requirement]
mgr.showSoftInput(EditText, InputMethodManager.SHOW_IMPLICIT);
Run Code Online (Sandbox Code Playgroud)
但是有可能告诉键盘本身在WebView上显示什么类型或设置属性?
我需要一个带有固定后缀的EditText.我正在使用TextWatcher捕获onTextChanged事件,但是如果我通过添加后缀再次更改Text,则会导致由无限递归引起的stackoverflow异常.
msgtextview.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
//Doing some other stuff
msgtextview.setText("Changed Text") //This cause infinite recursion
}
}
Run Code Online (Sandbox Code Playgroud)
这是代码.
我有一个包含输入表单的WebView。当用户选择第一个输入时,将出现键盘,并将滚动WebView以便隐藏输入。我的问题是在<API 19中,当点击WebView不会滚动的下一个部分模糊的输入时。如果要关闭键盘,然后选择输入,它将可以正确滚动。
我已经阅读了很多有关“活动”是否为“全屏”的信息,但它无法正常工作,但我的应用程序却无法正常工作。
表现:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.app.MyApp">
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:name=".App"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name="com.app.MyApp.MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize|stateVisible">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
WebView布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:orientation="vertical">
<WebView
android:id="@+id/banking_webview"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<LinearLayout
android:id="@+id/banner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/BannerOrange"
android:clickable="true"
android:orientation="horizontal"
android:padding="2dp"
android:visibility="gone">
<ImageView
android:id="@+id/banner_image"
android:layout_width="64dp"
android:layout_height="@dimen/single_line_height"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/banner_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="@dimen/typography_subhead"/> …Run Code Online (Sandbox Code Playgroud) 我TextWatcher在的“活动”中使用,onPostCreate但现在我将其变成了片段。
片段中的等效内容是什么?
@Override
protected void onPostCreate(Bundle savedInstanceState) {
mSearchView.addTextChangedListener(filterTextWatcher);
super.onPostCreate(savedInstanceState);
}
Run Code Online (Sandbox Code Playgroud) 我的表格分成几个片段.我用每个片段调用:
final FragmentManager fm = getSupportFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
if(fragment.equals(this.formOne) || fragment.equals(this.formTwo)) {
ft.setCustomAnimations(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
}
ft.replace(R.id.fragForm, fragment);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
当我单击后退按钮时,它会跳过上一个片段并返回到活动但屏幕为空白.
例如,我有3个片段:A - B - C.
如果我去C并希望回到上一个活动,我点击后退按钮,我就在B上,我再次点击,我在A上,当我再次点击时,我有一个空白屏幕,我需要再次单击以返回上一个活动.
我不明白为什么我的活动上有这个空白屏幕.
我在开发者文档中不明白这一点:
注意:当事务用于水平导航(例如切换选项卡时)或修改内容外观(例如调整过滤器时)时,不应将事务添加到后台堆栈.有关何时适合返回导航的详细信息,请参阅导航设计指南.
如果我们不能使用它,那么解决方案是什么?