我正在创建一个基于聊天的UI屏幕,其中我有聊天消息的工具栏和recyclerview,并回复msg布局.
每当edittext获得焦点时它会向上移动工具栏.相反,我想重新调整recyclerview的大小.
一些stackoverflow答案建议在工具栏下方放置一个空的滚动视图,但它不起作用.
<activity
android:name=".PostMessageActivity"
android:label="@string/title_activity_post_message"
android:windowSoftInputMode="stateVisible|adjustResize"
>
</activity>
Run Code Online (Sandbox Code Playgroud)
我设置windowSoftInputMode到stateVisible|adjustPan清单文件.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.pasonet.yokibu.PostMessageActivity"
>
<include
android:id="@+id/toolbar_home"
layout="@layout/toolbar_home"
android:elevation="5dp"
/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar_home"
android:orientation="vertical"
android:layout_above="@+id/add_post_layout"
>
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/post_msg_recyclerview"
>
</android.support.v7.widget.RecyclerView>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:padding="5dp"
android:id="@+id/add_post_layout"
android:background="#ffffff"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:elevation="5dp"
android:layout_margin="0pt"
>
<EditText
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/messageText"
android:layout_gravity="bottom"
android:layout_weight="1"
android:maxLines="4"
android:scrollbars="vertical"
android:background="@color/trasnperant"
android:hint="Type your message"
android:layout_marginBottom="4dp"
/>
<ImageButton
android:layout_width="wrap_content" …Run Code Online (Sandbox Code Playgroud) android android-appcompat android-linearlayout android-toolbar android-recyclerview
我在使用v7工具栏时遇到了困难.曾经简单的任务ActionBar,现在似乎过于复杂.无论我设置什么样的风格,我都无法更改导航图标(打开抽屉)或溢出菜单图标(打开菜单).
所以我有一个 Toolbar
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/ghex"
android:minHeight="?attr/actionBarSize"
app:theme="@style/ThemeOverlay.AppCompat.Light"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
>
Run Code Online (Sandbox Code Playgroud)
我编码看起来像这样
//before in the code I do
mToolbar = (Toolbar) findViewById(R.id.toolbar);
private void initToolbar() {
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要更改Drawable这两个图标.

我如何为compat v7做到这一点Toolbar?我想我需要在抽屉打开时更改箭头(Android 5.0).
android android-appcompat android-layout material-design android-toolbar
我正在为Android 4.0及更高版本开发一个应用程序.我刚刚更新到appcompat 22.2.0,但我在网上看到所有这些对...- v21/v22.xml的引用.它们用于什么?他们有所作为吗?提前致谢!
我正在使用Support Library 23.2中添加的支持向量drawable 和AppCompat.我正在使用带有app:srcCompat和内部的矢量绘图,StateListDrawable所以我可以将它们android:drawableLeft用于我的TextView.
自升级到AppCompat的23.3.0版本以来,只有向量app:srcCompat正在运行.每当我以另一种方式引用它时
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.my.package.name/.MainActivity}: android.view.InflateException: Binary XML file line #8: Error inflating class Button
...
Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class Button
...
Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #14: invalid drawable tag vector
at android.graphics.d
Run Code Online (Sandbox Code Playgroud)
改变了什么现在导致我的支持向量drawables在某些情况下失败?
如何在AndroidX中的布局XML中添加cardview
升级到AndroidX之后
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp">
Run Code Online (Sandbox Code Playgroud)
给出一个错误
找不到以下类:-android.support.v7.widget.CardView(修复构建路径,编辑XML,创建类)
dependencies {
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在AndroidX下的xml中使用CardView
谢谢
android android-appcompat android-cardview material-components-android androidx
我不知道我错过了什么,但我无法在我的操作栏中设置我的徽标.我的AndroidManifest.xml:
<application
android:icon="@drawable/application_icon"
android:label="@string/icon_name"
android:logo="@drawable/actionbar_logo"
android:theme="@style/PolarTheme">
Run Code Online (Sandbox Code Playgroud)
我还在清单中的活动标签中设置了我的徽标:
<activity
android:name=".Main"
android:theme="@style/PolarThemeLogo"
android:logo="@drawable/actionbar_logo"
android:windowSoftInputMode="adjustPan">
</activity>
Run Code Online (Sandbox Code Playgroud)
这是在我的themes.xml中:
<style
name="PolarThemeLogo" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/mainColor500</item>
<item name="colorPrimaryDark">@color/mainColor700</item>
<item name="colorAccent">@color/accentColorA200</item>
<item name="actionBarStyle">@style/MyActionBarLogo</item>
<item name="android:windowContentOverlay">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我的styles.xml:
<style name="MyActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="background">@color/mainColor500</item>
<item name="displayOptions">useLogo</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在我的Main.java中:
public class Main extends ActionBarActivity {
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ActionBar actionBar = getSupportActionBar();
actionBar.setTitle("");
actionBar.setDisplayUseLogoEnabled(true);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
更新 - 已解决
我android:logo从AndroidManifest.xml中删除了所有属性,并修改了我的MyActionBarLogo样式,如下所示:
<style name="MyActionBarLogo" parent="@style/Widget.AppCompat.Light.ActionBar">
<item name="background">@color/mainColor500</item>
<item name="logo">@drawable/actionbar_logo</item>
<item name="displayOptions">useLogo|showHome</item>
</style>
Run Code Online (Sandbox Code Playgroud)
现在操作栏显示我的徽标.:)
我有一个奇怪的探测器使用AppCompat Lib 22.2和新引入的:layout_behavior
如果我使用值"@ string/appbar_scrolling_view_behavior",如此处所述Android Design Support Lib,应用程序将终止,但会出现以下异常:
Could not inflate Behavior subclass android.support.design.widget.Settings
Caused by: java.lang.RuntimeException: Could not inflate Behavior subclass android.support.design.widget.Settings
Caused by: java.lang.ClassNotFoundException: android.support.design.widget.Settings
Caused by: java.lang.NoClassDefFoundError: android/support/design/widget/Settings
Caused by: java.lang.ClassNotFoundException: android.support.design.widget.Settings
Run Code Online (Sandbox Code Playgroud)
如果我改为:
app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior"
Run Code Online (Sandbox Code Playgroud)
一切正常.
我错过了什么?
设置操作栏的颜色后,actionBarColorin private String actionBarColor = "#B36305";会突出显示为黄色,并且由于某种原因会返回警告.可以做些什么来摆脱这个警告?
字段可以转换为局部变量
public class MainActivity extends AppCompatActivity {
private String actionBarColor = "#B36305";
private int getFactorColor(int color, float factor) {
float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
hsv[2] *= factor;
color = Color.HSVToColor(hsv);
return color;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_activity_main);
ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor(actionBarColor)));
}
}
}
Run Code Online (Sandbox Code Playgroud) java android android-appcompat android-actionbar android-support-library
我一直在努力将我的应用程序更新为Material Design.
我有一个使用标签的应用程序.出于某种原因,每当我使用android:popupBackground来设置下拉菜单颜色时,它就会变得怪异.

我设置了一个带有标签的默认项目,并使用了以下主题,同样的事情发生了.有没有其他人有这个问题?我的应用程序是开源的,因此所有代码都可以在这里获得GitHub
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="actionDropDownStyle">@style/Dropdown</item>
</style>
<style name="Dropdown" parent="Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
<item name="android:popupBackground">#000</item>
<item name="android:paddingLeft">32dp</item>
<item name="android:paddingRight">32dp</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud) android android-appcompat android-actionbar android-actionbar-compat material-design
我在Eclipse安装中将AppCompat库更新为24.2.1,将SDK更新到Android 7.从那以后,我无法运行任何应用程序.如果你能帮助我,我感激不尽......
E/AndroidRuntime(17555): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/os/BuildCompat;
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:196)
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:181)
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:521)
E/AndroidRuntime(17555): at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:71)
E/AndroidRuntime(17555): at com.ryosoftware.calendareventsnotifier.MainActivity.onCreate(MainActivity.java:844)
E/AndroidRuntime(17555): at android.app.Activity.performCreate(Activity.java:5990)
E/AndroidRuntime(17555): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
E/AndroidRuntime(17555): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
E/AndroidRuntime(17555): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
E/AndroidRuntime(17555): at android.app.ActivityThread.access$900(ActivityThread.java:154)
E/AndroidRuntime(17555): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
E/AndroidRuntime(17555): at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(17555): at android.os.Looper.loop(Looper.java:135)
E/AndroidRuntime(17555): at android.app.ActivityThread.main(ActivityThread.java:5294)
E/AndroidRuntime(17555): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17555): at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(17555): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
E/AndroidRuntime(17555): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
E/AndroidRuntime(17555): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.os.BuildCompat" on path: DexPathList[[zip file "/data/app/com.ryosoftware.calendareventsnotifier-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
E/AndroidRuntime(17555): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) …Run Code Online (Sandbox Code Playgroud)