Articles of android fragments

Android Studio XML不能识别objectAnimator

我一直试图animation之间的两个片段之间的过渡。 我原来在xml中放置了一个属性animation(并没有真正起作用),然后将其更改为objectAnimator。 出于某种原因,Android Studio不能识别objectAnimator标签。 这里是我的AndroidManifest.xml: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.nick.randomapplication" > <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/Theme.Base.AppCompat.Light" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 我的build.Gradle: apply plugin: 'com.android.application' android { compileSdkVersion 20 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.example.nick.randomapplication" minSdkVersion 19 targetSdkVersion 20 versionCode 1 versionName "1.0" […]

在片段中添加onOptionsItemSelected调用

@Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_filter) { FragmentManager fm = getSupportFragmentManager(); if (userType.equals("İş Arayan")) filterDialogTitle […]

在应用程序启动时closures导航抽屉

我用Navigation Drawer开发了一个应用程序。 每次应用程序第一次启动时,都会打开导航抽屉。 有什么办法可以把它设置为closures? 以下是自动生成的代码,供您理解。 import com.example.navigationdrawer.R; import android.support.v7.app.ActionBarActivity; import android.app.Activity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; /** * Fragment used for managing […]

Android:添加一个简单的片段

我对Android应用程序很新,所以我希望能在这里find一些帮助。 我已经在这里search了我的问题,发现了一些东西,但是这不起作用。 我想添加一个片段到FrameLayout,但它不工作。 我的目标是创build一个始终存在的框架(/框架?),用户可以与它进行交互,在框架内的一个特定的“窗口”我想显示的页面/片段,共五个,并beeing能够切换在任何时候的页面/片段,所以我有一个总是存在的框架,并在这个dynamic变化的页面。 但现在我坚持在一开始就添加一个简单的片段到这个框架(这已经工作顺便说一句)。 这是所有相关的代码我希望:错误发生在MainActivity.java(getSupportFragmentManager()。beginTransaction()。add(R.id.mainFrame,homeFragment).commit();)它告诉我: 错误:(25,55)错误:找不到适合的方法add(int,HomeFragment)方法FragmentTransaction.add(Fragment,String)不适用(参数不匹配; int不能转换为Fragment)方法FragmentTransaction.add(int,片段)不适用(参数不匹配; HomeFragment不能转换为片段) 我已经试图把碎片扔到碎片上,但是这并没有奏效。 MainActivity.java import android.app.FragmentTransaction; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; public class MainActivity extends FragmentActivity { FragmentTransaction fragmentTransaction; HomeFragment homeFragment; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); homeFragment = new HomeFragment(); **getSupportFragmentManager().beginTransaction().add(R.id.mainFrame, homeFragment).commit();** } activity_main.xml中 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" tools:ignore="MergeRootFrame" > <FrameLayout […]

Androiddate时间select器在一个对话框中

我正在使用材料Date Timeselect器为我的Android应用程序。 但我想在一个对话框中结合Date和Timeselect器。 我正在关注这一个 。 但是我需要selectdate之后的时间。 请build议可能的方法来做到这一点。

屏幕旋转的片段

我已经添加了一个viewpager到一个包含两个页面的活动。 在onCreate的活动中,我添加片段到fragmentAdapter: public void onCreate(Bundle savedInstanceState) { …… FragmentAdapter fragmentAdapter = new FragmentAdapter ( getSupportFragmentManager(), new Fragment[]{FragmentGame.builder(id), FragmentComments.builder(id)}, new String[]{getString(R.string.gameInfo), getString(R.string.comments)} ); ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(fragmentAdapter); public static FragmentGame builder(long id) { FragmentGame fragmentGame = new FragmentGame(); // fragmentGame.id = id; Bundle bundle = new Bundle(); bundle.putLong(Constants.EXTRA_ID, id); fragmentGame.setArguments(bundle); return fragmentGame; } 第一次创build活动时,会按照预期的方式调用片段的onCreateView […]

getWidth在Fragment中返回0,getPaddingLeft返回非零值

我正在尝试将我的Android应用程序转换为Fragments,以支持多种屏幕尺寸,并正确使用新的ICS选项卡。 之前,我使用了onWindowFocusChanged()方法,并在其中运行了下面的代码 – 基本上这是在创build后对布局进行了dynamic格式化。 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { LinearLayout theLayout = (LinearLayout)inflater.inflate(R.layout.tab_frag2_layout, container, false); getWidthEditButton = (ImageButton) theLayout.findViewById(R.id.buttonEditPoints); buttonAddPointsManual = (ImageView) theLayout.findViewById(R.id.buttonAddPointsManual); linearPointsUsed = (LinearLayout) theLayout.findViewById(R.id.linearLayoutPointsUsed); int paddingLeftForTracker = linearPointsUsed.getPaddingLeft(); int paddingRightForTracker = getWidthEditButton.getWidth(); linearPointsUsed.setPadding(paddingLeftForTracker, 0, paddingRightForTracker, 0); } 现在我已经移动到片段,由于某种原因,我的paddingRightForTracker返回0.我遇到了一个问题,以前我试图得到宽度太早,因此我以前移动到onWindowFocusChanged,但是这是不可用的碎片。 奇怪的是,paddingLeftForTracker实际上返回一个非零值。 如果我手动设置paddingRightForTracker,更改发生,所以我知道代码正在运行。 只是不知道为什么我的getWidth返回0。 任何帮助将不胜感激。

在DialogFragment上commitAllowingStateLoss

我有一个IllegalStateException显示一个DialogFragment : java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 我知道为什么发生,但我想通过重写DialogFragment show函数显示对话框上使用commitAllowingStateLoss : public void show(FragmentManager manager, String tag) { mDismissed = false; mShownByMe = true; FragmentTransaction ft = manager.beginTransaction(); ft.add(this, tag); ft.commit(); //replace it by commitAllowingStateLoss } 但我不访问mDismissed和mShownByMevariables,我怎样才能访问这些variables来修改它们,因为它是父母做的。

Honeycomb中的片段加载微调器/对话框

当将数据加载到我的碎片时,我希望在碎片中间有一个不确定的微调(例如,下图),以向用户显示在该特定窗格中正在加载内容。 Honeycomb中最好的方法是什么? 我真的不想在操作栏中使用微调,在加载数据的位置并不明显。 此外,我不想要一个不确定的进度对话框,因为它出现在整个应用程序的中心,也阻止用户做任何事情,直到它被解雇。 NB FragmentDialogs似乎也这样做。 我将不得不使用自定义的FrameLayout来获得每个窗格所需的效果吗?

图片GridView里面的片段

我刚开始在iOS平台上开发Android平台。 我环顾四周,我似乎无法弄清楚。 我正在尝试在select操作栏中的选项卡后显示网格视图。 片段通过控制标签栏的主要活动进入视图。 我认为这个问题可能与通过上下文有关,但我不确定。 这是我的MainActivity.java 。 这是片段初始化并附加到活动的位置。 它在没有代码片段的情况下工作。 if (mFragment == null){ mFragment = Fragment.instantiate(mActivity, mClass.getName()); ft.add(android.R.id.content,mFragment,mTag); } else { ft.attach(mFragment); } 这里是我的PhotosFragment.java这是我希望网格视图被填充和显示的地方。 public class PhotosFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); GridView gridview = (GridView) this.getActivity().findViewById(R.id.photogridview); gridview.setAdapter(new PhotoImageAdapter(this.getActivity())); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } } 这是我的PhotoImageAdapter.java类。 […]